var websocket = null;
function wsInit() {
var protocol = location.protocol === 'https:' ? 'wss://' : 'ws://';
if ('WebSocket' in window) {
websocket = new ReconnectingWebSocket("ws://www.gzckgc.cn/socket/measure.do");
} else if ('MozWebSocket' in window) {
alert("此浏览器只支持MozWebSocket");
} else {
alert("此浏览器只支持SockJS");
}
websocket.onopen = function (evnt) {
console.log("websocket.onopen");
(websocket && websocket.readyState == WebSocket.OPEN) ? console.log("---连接成功----") : '';
};
websocket.onmessage = function (evnt) {
var data = evnt.data;
console.log(data, "onmessage");
};
websocket.onerror = function (evnt) {
websocket.close();
console.error("ws异常");
};
websocket.onclose = function (evnt) {
console.log("ws连接关闭");
websocket.close();
}
}
wsInit()
自动连接
1. websocket = new ReconnectingWebSocket("ws://www.gzckgc.cn/socket/measure.do");
2. this.open(false);
open = function (reconnectAttempt) {
eventTarget.dispatchEvent(generateEvent('connecting'));
ws.onopen = function (event){
console.log("ws.onopen");
var e = generateEvent('open');
eventTarget.dispatchEvent(e);
}
}
3. eventTarget.addEventListener('open', function (event) {
console.log("self.onopen(event)");
self.onopen(event);
});
4. websocket.onopen = function (evnt) {
console.log("websocket.onopen");
(websocket && websocket.readyState == WebSocket.OPEN) ? console.log("---连接成功----") : '';
};
主动连接
1. if (websocket.readyState == 1) {
console.log('已建立连接');
}
else {
console.log('重新连接');
websocket.open(false)
}
2. this.open(false);
open = function (reconnectAttempt) {
eventTarget.dispatchEvent(generateEvent('connecting'));
ws.onopen = function (event){
console.log("ws.onopen");
var e = generateEvent('open');
eventTarget.dispatchEvent(e);
}
}
3. eventTarget.addEventListener('open', function (event) {
console.log("self.onopen(event)");
self.onopen(event);
});
4. websocket.onopen = function (evnt) {
console.log("websocket.onopen");
(websocket && websocket.readyState == WebSocket.OPEN) ? console.log("---连接成功----") : '';
};
主动断开连接
1. websocket.close();
2. this.close = function (code, reason) {
if (typeof code == 'undefined') {
code = 1000;
}
console.log(forcedClose, 111);
forcedClose = true;
if (ws) {
ws.close(code, reason);
}
};
3. ws.onclose = function (event) {
console.log("ws.onclose");
ws = null;
if (forcedClose) {
self.readyState = WebSocket.CLOSED;
eventTarget.dispatchEvent(generateEvent('close'));
}
}
4. eventTarget.addEventListener('close', function (event) {
console.log("self.onclose(event)");
self.onclose(event);
});
5. websocket.onclose = function (evnt) {
console.log("ws连接关闭");
websocket.close();
}
自动连接失败
1. websocket = new ReconnectingWebSocket("ws://www.gzckgc.cn/socket/measure.do");
2. this.open(false);
open = function (reconnectAttempt) {
ws = new WebSocket(self.url, protocols || []);
eventTarget.dispatchEvent(generateEvent('connecting'));
var localWs = ws;
var timeout = setTimeout(function () {
if (self.debug || ReconnectingWebSocket.debugAll) {
console.log('ReconnectingWebSocket', 'connection-timeout', self.url);
}
timedOut = true;
localWs.close();
timedOut = false;
}, self.timeoutInterval);
}
3. ws.onerror = function (event) {
eventTarget.dispatchEvent(generateEvent('error'));
};
4. eventTarget.addEventListener('error', function (event) {
console. log("self.onerror(event)");
self.onerror(event);
});
5. websocket.onerror = function (evnt) {
websocket.close();
console.error("ws异常");
};
6. this.close = function (code, reason) {
if (typeof code == 'undefined') {
code = 1000;
}
console.log(forcedClose, 111);
forcedClose = true;
if (ws) {
ws.close(code, reason);
}
};
7. ws.onclose = function (event) {
console.log("ws.onclose");
clearTimeout(timeout);
ws = null;
if (forcedClose) {
self.readyState = WebSocket.CLOSED;
eventTarget.dispatchEvent(generateEvent('close'));
}
}
8. eventTarget.addEventListener('close', function (event) {
console.log("self.onclose(event)");
self.onclose(event);
})
9. websocket.onclose = function (evnt) {
console.log("ws连接关闭");
websocket.close();
}
10. this.close = function (code, reason) {
if (typeof code == 'undefined') {
code = 1000;
}
console.log(forcedClose, 111);
forcedClose = true;
if (ws) {
ws.close(code, reason);
}
};
