Я делаю простую онлайн-игру, основанную на Web. игра использует Socket.io для взаимодействия друг с другом. но я столкнулся с проблемой.
думаю о следующей ситуации. Я запустил сервер Socket.io. один игрок делает комнату, а другой игрок входит в комнату. они играли в игру некоторое время.. но один игрок так разозлился и закрыл вкладку игры.
в этой ситуации, как я могу получить событие, которое один клиент был закрыт браузером на стороне сервера?
согласно googling, люди говорят так: "использовать событие закрытия браузера, например onBeforeUnload"
но я знаю, что браузер не поддерживает событие onBeforeUnload. так что я хочу решения о проверка события отключения клиента на стороне сервера.
в серверной консоли Socket.io(nodeJS), когда клиентское соединение закрыто, консоль скажет следующее:
отладка - отбрасывание транспорта
Моя версия nodeJS 0.4.10, а версия Socket.io - 0.8.7. и оба работают в Linux.
Кто-нибудь может помочь?
коды сокращений:
var io = require ( "socket.io" ).listen ( 3335 );
io.sockets.on ( "connection" , function ( socket )
{
socket.on ( "req_create_room" , function ( roomId )
{
var socketInstance = io
.of ( "/" + roomId )
.on ( "connection" , function ( sock )
{
sock.on ( "disconnect" , function ()
{
// i want this socket data always displayed...
// but first-connected-client doesn't fire this event ..
console.log ( sock );
}
});
});
});