Próbuję znaleźć sposób dla moich klientów SockJS, aby ponownie połączyć się z serwerem, jeśli powinien on ulec awarii.Klient SockJS automatycznie łączy się ponownie?
Obecnie mam to:
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);
};
Problemem jest to, że setInterval
utrzymuje wypalanie nawet po udanym ponownym połączeniu. Wygląda na to, że socket.onopen
nigdy nie zostanie wykonany.
Jakieś pomysły, co mógłbym zrobić źle?
w przypadku korzystania setTimeout() powinna być lepsza niż setInterval() – Fielding34
@ Fielding34 Właściwie myślę, że wręcz przeciwnie - 'setInterval()' jest lepiej, bo PO chce zachować próbuje (gdy serwer jest wyłączony), dopóki nie połączy się – TMG