前端服务器(不是客户端)调用后端服务器的remote中的方法(如:玩家离线后调用聊天服务器中remote离开聊天室)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
};

3)这样后端通过channel还可以给客户端通知下离开的信息

猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/88730556