Почему соедиенение Websocket закрывается очень долго?

Есть код, который устанавливает websocket соединение. При вызове функции closeConnection соединение должны быть закрыто, а по событию onclose снова открыто.

У большинства пользователей событие onclose работает мгновенно, но на некоторых компьютерах onclose вызывается через минуты. У всех стоит последняя версия браузера и стабильный интернет, все пользователи находятся в одной сети.

На сервере сообщение о закрытии соединения так же приходят с большой задержкой.

В чем может быть причина?

Примера кода:
let socket = null;
  
  startConnection();

  function startConnection() {
    socket = new WebSocket("ws://example.com");

    socket.onopen = function (e) {
      console.log("[open] Соединение установлено");
      console.log("Отправляем данные на сервер");
      socket.send('Тестовое сообщение');
    };

    socket.onmessage = function (event) {
      console.log(`[message] Данные получены с сервера: ${event.data}`);
    };

    socket.onclose = function (event) {
      socket = null;
      console.log('Пытаемя установить новое соединение!');
      startConnection();
    };

    socket.onerror = function (error) {
      console.log(`[error]`);
    };
  }

  function closeConnection() {
      console.log(`start close`);
      socket.close();
    }
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
@kpb Автор вопроса
В нашем случаем оказалось из-за Kaspersky Secure Connection, после его удаления все заработало
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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