workerman的socketio跑了十几个小时后,广播不了

求大神指导下
我在linux服务器上,用screen开了socketio。前面几个小时就可以正常运行,比如把客户端分组,然后广播什么的。但是后面总是跑了十几个小时后,客户端连的上,但是就是只能触发连接时的函数,然后其他都触发不了。网上找了很多资料也不知道怎么改,打算实在不行就写个定时脚本在开启一遍。大神们有什么更好的解决办法吗
self::$sender_io->on('connection', function($socket){
// 当客户端发来登录事件时触发
$socket->on('login', function ($uid)use($socket){
// global $uidConnectionMap, $last_online_count, $last_online_page_count;
// 已经登录过了
if(isset($socket->uid)){
return;
}
// 更新对应uid的在线数据
$uid = (string)$uid;
if(!isset(self::$uidConnectionMap[$uid]))
{
self::$uidConnectionMap[$uid] = 0;
}
// 这个uid有++$uidConnectionMap[$uid]个socket连接
self::$uidConnectionMap[$uid]=1+self::$uidConnectionMap[$uid];
// 将这个连接加入到uid分组,方便针对uid推送数据
$socket->join($uid);
$socket->uid = $uid;
// 更新这个socket对应页面的在线数据
$last_count=self::$last_online_count;
$last_page_count=self::$last_online_page_count;
$socket->emit('update_online_count', "当前<b>{$last_count}</b>人在线,共打开<b>{$last_page_count}</b>个页面");
});

 
 
 
1557805591(1).jpg 1557805652.jpg
已邀请:

walkor

赞同来自:

贴所有代码以及你的测试方法

要回复问题请先登录注册