Deepstream.io - обратный вызов сервера при отключении клиента?
Я создаю многопользовательскую игру с Deepstream, используя модель сервера Authorative. Мой сервер просто еще один клиент Node.JS. Есть ли способ для моего сервера узнать, был ли какой-либо из подключенных клиентов отключен или закрыл их соединение? Есть ли событие или обратный вызов, который выставлен?
Я могу построить систему сердцебиения, но мне интересно, можно ли этого избежать.
1 ответ
Да, официальная функция "присутствия" уже завершена и находится в стадии тестирования. Однако вы уже можете имитировать его функциональность через прослушивание, как показано в этом руководстве в этой строке кода.
Вообще говоря, все клиенты будут подписываться на определенное для них событие состояния, например
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 );
}
}
Это будет отслеживать любое отключение, будь то преднамеренное или случайное