Я последовал другой ответ S / O , чтобы выяснить, как сообщить моему серверу, что клиент отключен с помощью
var socket = io.connect(<your_url>, {
'sync disconnect on unload': true });
Проблема в том, что это часть Исходная конфигурация сокета, я не могу сказать от сервера, кто из моих клиентов фактически отключился. На моей клиентской стороне я отображаю список имен пользователей для всех подключенных клиентов, поэтому мне нужно знать, какое имя пользователя удалить из этого списка для остальных клиентов.
код на стороне сервера, который запускается при работе клиента закрывается:
socket.on('disconnect', reason => {
console.log('user disconnected', reason);
});
, но переменная "reason" оказывается просто строкой с надписью: "transport close" без информации о фактическом клиенте, который отключился.
One Подход, о котором я думал, заключался в том, что всякий раз, когда клиент отключается, сервер может запрашивать ответ у всех подключенных клиентов и использовать его для отправки обновленного списка каждый раз, но это кажется чрезмерным. Я бы предпочел узнать, какой клиент отключился, когда он отключился, и просто передать идентификатор недавно отключенного клиента, чтобы другие клиенты могли обновлять свои соответствующие списки пользователей локально. В конце концов, когда присоединяется новый клиент, я передаю имя пользователя этого клиента, чтобы все клиенты могли обновляться локально - я хотел бы использовать один и тот же шаблон при отключении клиента.
Короче, кто-нибудь знает способ чтобы, в конфигурации "syn c отключить при выгрузке" файла socket.io, также отправить идентификатор клиента при выгрузке?