美文网首页游戏编程研究院pomelo 游戏开发
pomelo 获取其他玩家在线状态-I

pomelo 获取其他玩家在线状态-I

作者: 抓不住的风 | 来源:发表于2014-09-04 19:34 被阅读1040次

在游戏中,好友和聊天系统里,需要用到玩家的在线状态,搞了两三天,大致搞明白了,在这里总结一下.

pomelo的API中有一个方法:BackendSessionService.getByUid(frontendId,uid,cb);

frontendId: global.app.getServersByType('connector);这是一个数组,里面是前段服务器配置信息,我们要用到的时数组中得id.

uid:玩家账户ID 不是角色ID.

cb:function(err,backendSessions){ 

                      //backendSessions是我们想要获取的服务器端的session.

}

var player = {id:1,name:'li',uid:1001};

var async = require('async');

var uid = player.uid;//玩家账户ID

var backendSessionService = global.app.get('backendSessionService');

var connectors = global.app.getServersByType('connector);//获取前段服务器

async.mapSeries(connectors,function(connector,callback){

           backendSessionService.getByUid(connector.id,uid,function(err,sessions){

                     if(!!sessions){

                            var session = sessions[0];//一个角色只有一个session

                            player.online = 0;//默认离线

                            if(session.uid == uid){

                                   player.online = 1;//在线

                            }

                            callback(err,player);

                     }else{

                             callback(err,player);

                     }

           });                   

},function(err,result){

        console.log('result:',result);//{id:1,name:'li',uid:1001,online:1}

});

相关文章

网友评论

  • _L_明_:因为在登录的时候已经把用户放在chat服务器里面的list里面了,所以可以直接在那里进行判断
  • a74e118df602:这个方法挺麻烦的,不建议使用.

本文标题:pomelo 获取其他玩家在线状态-I

本文链接:https://www.haomeiwen.com/subject/unpytttx.html