Deepstream.io - 客户端断开连接时服务器回调?
Deepstream.io - Server callback when client disconnects?
我正在使用授权服务器模型与 Deepstream 一起构建多人游戏。我的服务器只是另一个 Node.JS 客户端。我的服务器有什么办法可以查明是否有任何连接的客户端断开连接或关闭了它们的连接?是否有暴露的事件或回调?
我可以构建心跳系统,但我想知道是否可以避免这种情况。
是的,官方 "presence" feature is already feature complete and in test. However you can already mimic its functionality via listening as shown in this tutorial at 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 );
}
}
这将跟踪任何断开连接,无论是有意的还是意外的
我正在使用授权服务器模型与 Deepstream 一起构建多人游戏。我的服务器只是另一个 Node.JS 客户端。我的服务器有什么办法可以查明是否有任何连接的客户端断开连接或关闭了它们的连接?是否有暴露的事件或回调?
我可以构建心跳系统,但我想知道是否可以避免这种情况。
是的,官方 "presence" feature is already feature complete and in test. However you can already mimic its functionality via listening as shown in this tutorial at 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 );
}
}
这将跟踪任何断开连接,无论是有意的还是意外的