socket.io принудительно отключает через XHR-опрос

У меня есть клиент-серверное приложение, использующее nodejs на сервере и socket.io в качестве механизма подключения. По причинам, относящимся к моему приложению, я хочу иметь только одно активное соединение для браузера и отклонить все соединения из других вкладок, которые могут быть открыты позже во время сеанса. Это прекрасно работает с WebSockets, но если WebSockets не поддерживается браузером и вместо этого используется XHR-опрос, разъединение никогда не происходит, поэтому, если пользователь просто обновляет страницу, это не интерпретируется как переподключение (у меня есть задержка для переподключение и восстановление сеанса), но как новая вкладка, которая заканчивается отклонением соединения, поскольку старое соединение, созданное этой же вкладкой, все еще активно.

Я ищу способ эффективного завершения соединения с клиентом при каждом обновлении. Я пытался привязать кbeforeunload и звонитsocket.disconnect() на стороне клиента, а также отправив сообщение, какsocket.emit('force-disconnect') и отключение от сервера безуспешно. Я что-то здесь упускаю? Ценю твою помощь!

Я прочиталэтот вопрос и не смог найти это полезным для моего конкретного случая.

Ответы на вопрос(2)

Ваш ответ на вопрос