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 );
        }
    }

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

Другие вопросы по тегам