fms-后台管理用户列表

先创建一个全局对象用来存储 用户
var userList = new Object();

然后检测后台的启动
application.onAppStart = function()
{
	trace("fms onAppStart...");
};

接着检测来自客户端的连接申请
application.onConnect = function(client, detail)
{
	trace("server begin");
code...


在接受申请时先判断下最大连接数
if(application.clients.length>=6000)
{
	trace("fms users num > 6000, refuse connect");
	application.rejectConnection(client);
}

通过后再检测是否有这用户,这里用我的需要是一个二级存储,如果某房间已经有该用户,则拒绝连接,
否则继续 http检测
roomId = detail.split(",")[0];
keys = detail.split(",")[1];
trace("roomId:" + roomId + " keys:" + keys);
client.roomId = roomId;
client.keys = keys;
if(!userList[roomId]) 
{
   userList[roomId] = new Object();
}
if(!userList[roomId][keys])
{
   httpConfirm(client, detail);
}
else 
{
   trace("repeat connect!");
}

http检测是跟jsp通讯确定该用户是否能连,收到能连接信息时push进userlist里
if(myVer.result == "success")
{
   trace("--acceptConnection--");
   userList[roomId][keys] = true;
   application.acceptConnection(client);
}

连接中断时接受 onDisConnect时间,去除userlist里相应用户:
application.disconnect(client);
if(userList[client.roomId] && userList[client.roomId][client.keys]) 
{
   userList[client.roomId][client.keys] = null;
}

这样就能实时获得在线用户,当给jsp或其他服验证时,如果被要求需要其他数据验证,则userlist的value 可以直接存储client对象
当然最后如果要严格一些的话 需要每隔一段时间ping 下所有用户,如果断开,则清除掉相应信息

ps.一般发现服务台打印不了或者加载不了application里的工程,则大多是main.asc写错了,有时错误Log不会直接打印在 管理工具上,
这是可以去logs文件夹里查对应工程的log,或者 服务器全部重启,一般我只重启server 服

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值