Bug #5227 » 0001-Reduce-overhead-of-websocket-connection-failures.patch
| src/web/skeleton/Wt.js | ||
|---|---|---|
|
state: WebSocketUnknown,
|
||
|
socket: null,
|
||
|
keepAlive: null,
|
||
|
reconnectTries: 0
|
||
|
reconnectTries: 0,
|
||
|
successCount: 0
|
||
|
};
|
||
|
var connectionMonitor = null;
|
||
| ... | ... | |
|
if (ws != null && websocket.state == WebSocketUnknown)
|
||
|
websocket.state = WebSocketUnavailable;
|
||
|
else {
|
||
|
function reconnect() {
|
||
|
if (!hasQuit) {
|
||
|
++websocket.reconnectTries;
|
||
|
var ms = Math.min(120000, Math.exp(websocket.reconnectTries)
|
||
|
* 500);
|
||
|
setTimeout(function() { scheduleUpdate(); }, ms);
|
||
|
}
|
||
|
}
|
||
|
var protocolEnd = sessionUrl.indexOf("://"), wsurl;
|
||
|
if (protocolEnd != -1) {
|
||
|
wsurl = "ws" + sessionUrl.substr(4);
|
||
| ... | ... | |
|
connectionMonitor.onStatusChange('connectionStatus', 1);
|
||
|
}
|
||
|
websocket.state = WebSocketWorking;
|
||
|
++websocket.successCount;
|
||
|
js = event.data;
|
||
|
}
|
||
| ... | ... | |
|
*/
|
||
|
if (connectionMonitor)
|
||
|
connectionMonitor.onStatusChange('websocket', false);
|
||
|
if (websocket.reconnectTries == 3 &&
|
||
|
websocket.state == WebSocketUnknown)
|
||
|
if (websocket.reconnectTries >= 3 &&
|
||
|
websocket.successCount == 0)
|
||
|
websocket.state = WebSocketUnavailable;
|
||
|
reconnect();
|
||
|
++websocket.reconnectTries;
|
||
|
return;
|
||
|
};
|
||
|
ws.onclose = function(event) {
|
||
| ... | ... | |
|
*/
|
||
|
if (connectionMonitor)
|
||
|
connectionMonitor.onStatusChange('websocket', false);
|
||
|
if (websocket.reconnectTries == 3 &&
|
||
|
websocket.state == WebSocketUnknown)
|
||
|
if (websocket.reconnectTries >= 3 &&
|
||
|
websocket.successCount == 0)
|
||
|
websocket.state = WebSocketUnavailable;
|
||
|
reconnect();
|
||
|
++websocket.reconnectTries;
|
||
|
return;
|
||
|
};
|
||
|
ws.onopen = function(event) {
|
||