我正在尝试找到一种方法,让我的SockJS客户端在服务器宕机后能够重新连接。
目前我有这个:
new_conn = function() {
socket = new SockJS(protocol + serverDomain + '/echo', null, {
'protocols_whitelist': ['websocket', 'xdr-streaming', 'xhr-streaming', 'iframe-eventsource', 'iframe-htmlfile', 'xdr-polling', 'xhr-polling', 'iframe-xhr-polling', 'jsonp-polling']
});
};
socket.onopen = function () {
clearInterval(recInterval);
};
socket.onclose = function () {
recInterval = window.setInterval(function () {
new_conn();
}, 2000);
};
问题在于setInterval
会持续触发,即使成功重连。似乎socket.onopen
从未被执行。
有任何想法我可能做错了什么?
setInterval()
更好,因为 OP 希望在服务器下线时不断尝试连接,直到连接成功。 - TMGsetTimeout()
即可。 - Herohtar