Отключите все клиенты в комнате, когда хост неожиданно ушел в Socket.IO - PullRequest
0 голосов
/ 09 марта 2020

Сценарий: учитель ведет комнату, затем ученики присоединяются к этой комнате. Я обработал эту функцию, когда учитель нажал кнопку «Завершить комнату», а затем отключил всех учеников в этой комнате.

Однако есть еще одна ситуация, которую необходимо обработать:

Когда учитель не нажал кнопку, а неожиданно закрыл вкладку браузера или inte rnet был отключен , тогда как еще можно отключить всех учеников в этой комнате?

Я думаю о сохранении идентификатора сокета учителя и идентификатора комнаты в базе данных . Когда каждый раз кто-то отключается, ищите базу данных с этим идентификатором сокета, совпадают ли с идентификатором учителя. Но я думаю, что на самом деле потребляет огромные ресурсы трафик запроса к базе c, потому что каждый отключил сокет, а затем запросил базу данных один раз.

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

socket.on("disconnect", () => {
    console.log("user disconnected: " + socket.id);
});

этот метод присоединения к комнате, которую я использую в настоящее время

socket.join(classroomId);

socket.to(classroomId).emit("message", message);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...