socket.io со временем перестает работать на настольном Chrome и настольном Firefox - PullRequest
0 голосов
/ 28 июня 2019

Текущее поведение

Мы не можем воспроизвести это надежно, но это описание настройки и проблемы нашего сервера.

Мы запускаем socket.io 2.2.0 на Node.JS /Сервер Express.

Примерно через 12 часов наш сервер не отвечает на выбросы от клиентов на настольных компьютерах Chrome и Firefox.Он продолжает работать в Edge, Safari и мобильных Chrome / Safari.

Например:

Сервер:

io.on('connection', (socket) => {
    socket.on(‘test’, (data) => {
       console.log(“This is a test”)
    })
})

Клиент:

this.socket.emit(‘test’)

В этом примере мы видим ожидаемое поведение в течение первых 12 часов работы сервера.«Это тест» запускается сразу после запуска клиента.

После этого, возможно, из-за постепенной нагрузки на сервер (хотя обычно мы никогда не подключаем более 20 клиентов одновременно), сервер останавливаетсяприслушиваясь к клиенту.Несмотря на проверку того, что клиент отправил «тест», сервер никогда не регистрирует «Это тест».Опять же, это происходит только на настольном Chrome и настольном Firefox.

Это кажется странным, потому что если сервер был перегружен - он должен восстановиться, когда число клиентов уменьшится.Кроме того, почему избыточная нагрузка внезапно навсегда отключила возможность Chrome и Firefox отправлять выбросы на наш сервер?Мы знаем, что соединение websocket устанавливается от клиента, просматривая журналы сети.Мы также видим, что соединение отправляет эхо-запросы, но не получает понги с сервера.

Ожидаемое поведение

Сокеты Chrome и Firefox продолжают работать в обычном режиме.

Настройка

  • ОС: Ubuntu 18.04
  • браузер: Desktop Chrome, Desktop Firefox
  • socket.io версия: 2.2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...