@ekaramazov

Как в js закрыть абсолютно все соединения websocket?

Подскажите ка закрыть абсолютно все соединения вебсокета?
Запускаю по onclick на ссылках, в ports[id] подставляется нужный порт (сервер настроен и слушает каждый). Проблема в том что если покликать часто то откроется много соединений (сервер присылает информацию каждую секунду и она разная в зависимости от порта), а нужно слушать только один.
Не получается убить все соединения или перезаписывать их.
function create() {
            ws = new WebSocket('<?php echo WS_PROTOCOL . SITE; ?>:' + ports[id]);       

            ws.onopen = function () {
                console.log('WebSocket opened');
            }
            ws.onmessage = function (e) {
                obj = JSON.parse(e.data);
               //                
            }
            ws.onclose = function () {
                console.log('WebSocket closed');              
            }           
            
            return true;
        }

Перерыл гугл и сам выдумывал велосипеды с флагами но ничего не получилось.
переменная ws глобальная и пытался по флагам отрубать ws.close() перед новым соединением, но соединение как я понял требует времени и поэтому при частых кликах они могут опережать друг друга.
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы