Обработка Socket.IO повторно подключает серверную часть - PullRequest
0 голосов
/ 05 августа 2020

Я не уверен, задавался ли этот вопрос раньше (немного огляделся). Я не могу придумать способ справиться с этим сценарием:

Пользователь отключается из-за некоторых проблем с подключением. Я хотел бы сказать всем остальным в комнате, что пользователь повторно подключается или просто не выгоняет их из комнаты. Прежде чем я сообщу всем, что человек отключился, я хотел бы подождать, пока повторное подключение не удастся. Теперь, если у этого человека возникнут проблемы с inte rnet, он не сможет отправить событие на сервер после того, как его повторное подключение не удастся, поэтому emit на стороне клиента не будет работать. Поэтому я смотрю, как другие справляются или будут справляться с подобными ситуациями. пока не произошло переподключение. Я читал, что сторона сервера никогда ничего не знает о статусе повторного подключения сокета.

socket.on("disconnect", async (reason) => {
        //emit user left
    });

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

Спасибо за помощь!

...