版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/themagickeyjianan/article/details/88730556
1) entryHandler中socket检测到断线时,必须从聊天服务器中退出
app.rpc.chat.chatRemote.kick(session, session.uid, app.get('serverId'), session.get('rid'), null);
2)后端chatRemote处理玩家离开聊天服务器的状态,也就是从channel去掉
ChatRemote.prototype.kick = function(uid, sid, rid, cb) {
var channel = this.channelService.getChannel(rid, false);
if( !! channel) {
channel.leave(uid, sid);
}
var username = uid.split('*')[0];
var param = {
route: 'onLeave',
user: username
};
console.info("广播用户被踢 ChatRemote.prototype.kick called,
uid:" + uid
+ " sid:" + sid
+ " rid:" + rid
+ " route:" + 'onLeave'
+ " username:" + username);
channel.pushMessage(param);
cb();
};