Socket.IO таймаут (отключение) происходит, если в сокете нет активности, но как обнаружено, что нет активности? Я не нахожу информацию об этом. Как работает процесс обнаружения? Например: Если пользователь закрывает вкладку веб-сайта, происходит отключение? Есть ли какой-либо способ, по которому пользователь теряет соединение, и разъединение не будет выполнено? Возможно, информация о кеше сообщает, что я в Интернете, даже если я покину веб-сайт?Как отключается разъём socket.io?
ответ
Если вы открываете инструменты разработчика на панели сети, вы можете отфильтровать свои запросы до ws запросов (запросы веб-сокетов), там вы можете увидеть свои активные соединения сетевых сокетов. Если вы выберете одно соединение, вы увидите заголовки, рамки, файлы cookie и время. Если вы выбираете вариант фреймов, вы можете видеть, что отправляется и принимается, между вашим браузером и сервером веб-сокетов.
следующее изображение станет ясно для вас, это инструменты разработчика Chrome:
Теперь там вы можете видеть, что есть некоторые номера, в основном ваш браузер и сервер делают пинг-понг. Вы можете узнать больше об этих цифрах в этом ответе SocketIO Chrome Inspector Frames
Этот пинг-понг - это то, что поддерживает розетку, поэтому мы знаем, что нет таймаутов. Что касается разъединения и подключения, я советую вам прочитать больше о WebSockets API, там вы увидите, что есть прослушиватели событий для onclose, onerror, onmessage и onopen.
Так, отвечая на этот вопрос:
Например: Если пользователь закрывает вкладку сайта, происходит разъединение? Там - это любой пользователь, потерявший соединение и разъединение, не будет выполнен?
Нет, событие onclose будет запущено, но даже если какая-либо космическая причина не будет запущена, вы в конечном итоге отключитесь из-за таймаута.
Что касается другого вопроса:
Возможна информация кэша сообщает, что Im онлайн, даже если я оставлю сайт?
Да, это не до розетки, это зависит от вас и вашей реализации. Вы можете вести список онлайн-пользователей и время от времени обновлять этот список, скажем, 10 минут. Вы можете хранить списки онлайн-пользователей и время, когда вы обновляете список своих онлайн-пользователей, некоторые из них уже отключены.
Спасибо за ответ, помогли мои сомнения. – Darm0ka