1

Я создаю многопользовательскую игру с Deepstream, используя модель серверного сервера. Мой сервер - это еще один клиент Node.JS. Есть ли способ для моего сервера выяснить, отключил ли какой-либо из подключенных клиентов или закрыл ли их соединение? Есть ли событие или обратный вызов, который отображается?Deepstream.io - Обратный вызов сервера, когда клиент отключается?

Я могу построить систему биения, но мне интересно, можно ли этого избежать.

+0

Используете ли вы какие-либо WebSockets библиотеки (Socket.io) для вашей игры? – Avinash

ответ

1

Yup, официальный "presence" feature уже функция полная и в тесте. Однако вы уже можете имитировать свою функциональность с помощью прослушивания, как показано в this tutorial по адресу this line of code.

Вообще говоря, все клиенты будут подписываться на конкретное для них событие состояния, например.

ds.event.subscribe('status/' + name); 

Сервер теперь будет слушать подписки на эти события и вывести онлайн статус:

ds.event.listen('status/.*', this._playerOnlineStatusChanged.bind(this)); 

_playerOnlineStatusChanged(match, isSubscribed) { 
     // Extract the player name from the status event 
     var name = match.replace('status/', ''); 

     if(isSubscribed) { 
      this.addPlayer(name); 
     } else { 
      this.removePlayer(name); 
     } 
    } 

Это будет следить любого отключения, намеренное или случайное