Как проверить непреднамеренное отключение клиентов от сервера WebSocket - PullRequest
0 голосов
/ 05 мая 2019

В моей текущей реализации сервера WebSocket я реализовал следующее поведение в отношении разъединений:

  • Когда WebSocket запускает событие close, я знаю, что клиент отключился по какой-либо причине (конечно, клиент может отправить причину отключения, чтобы облегчить мою жизнь).
  • В противном случае я предполагаю, что все клиенты живы. Существует таймер, который отправляет пакет ping каждые 5 секунд всем подключенным клиентам и устанавливает для их атрибута isAlive значение false. Каждый раз, когда приходит клиентский понг, соответствующий isAlive устанавливается на true.
  • Кроме того, есть еще один таймер, который проверяет, было ли значение isAlive false в течение более 10 секунд, и завершает WebSocket в этот момент и удаляет клиента с сервера.

Я хотел бы внедрить механизм переподключения, и мне нужно проверить поведение моего сервера на случайное отключение. Конечно, я мог взять свой ноутбук, подключиться к компьютеру, а затем принудительно отключить кабель WLAN, чтобы проверить, что происходит, что является громоздким. Есть ли какой-нибудь разумный способ или инструменты, чтобы подделать потерю связи?

...