Сценарий: учитель ведет комнату, затем ученики присоединяются к этой комнате. Я обработал эту функцию, когда учитель нажал кнопку «Завершить комнату», а затем отключил всех учеников в этой комнате.
Однако есть еще одна ситуация, которую необходимо обработать:
Когда учитель не нажал кнопку, а неожиданно закрыл вкладку браузера или inte rnet был отключен , тогда как еще можно отключить всех учеников в этой комнате?
Я думаю о сохранении идентификатора сокета учителя и идентификатора комнаты в базе данных . Когда каждый раз кто-то отключается, ищите базу данных с этим идентификатором сокета, совпадают ли с идентификатором учителя. Но я думаю, что на самом деле потребляет огромные ресурсы трафик запроса к базе c, потому что каждый отключил сокет, а затем запросил базу данных один раз.
Я знаю следующую функцию только при реализации отключенного пользователя. Есть ли какой-нибудь лучший способ или способ обнаружить отключенный идентификатор сокета хоста, а затем принять меры к этой комнате?
socket.on("disconnect", () => {
console.log("user disconnected: " + socket.id);
});
этот метод присоединения к комнате, которую я использую в настоящее время
socket.join(classroomId);
socket.to(classroomId).emit("message", message);