처음에는 오해 된 제목에 대해 미안하지만 더 나아질 수는 없습니다. 그래서 여기 내 문제가 있습니다 : NodeJS 및 socket.IO 사용하고 있습니다. 게임과 같은 로비 시스템이 있습니다. 당신은 루트를 만들고, 다른 사람들은 합류합니다. 방 소유자가 연결을 닫으면 방이 스스로 삭제해야합니다. 나는 이것을 좋아했다.연결 해제 전에 NodeJS 연결
db.game.findOne({ _id: ObjectId(roomId) }, function(err, item)
{
if (err || !item || item.started)
return;
if (item.createdBy == currentUser)
{
db.game.remove({ _id: ObjectId(roomId) }, function(err, item) {
io.sockets.in(roomId).emit('force_interupt');
});
}
그것은 작동하지만 문제가있다. 그 사람이 브라우저에서 REFRESH를 누르면, 웹 서버 (php, nginx, mongod)가 게임의 내용을 먼저 보여줍니다. - 그 후에 NodeJS에 의해 게임이 삭제됩니다. 연결이 끊어지기 때문입니다. 아이디어를 어떻게 피할 수 있습니까?
"종료"명령을 보내는 가장 좋은 방법은 무엇입니까? onbeforeunload 및 onunload에 대해 생각했지만 onbeforeunload를 사용하면 확인 결과의 반환 값을 얻을 수 있고 언로드를 중지 할 수 없습니다. –
'quit'명령에 'quit'단추를 사용하는 것이 좋습니다. 제 견해로, 페이지를 새로 고치는 것은 페이지를 닫은 다음 다시 여는 것과 아무런 차이가 없습니다. 따라서 새로 고침으로 방이 제거되지 않으면 페이지를 닫으면 방도 제거되어서는 안됩니다. – Chen
나는 어떻게하는지 알아 냈어. 고마워. –