求大神指導(dǎo)下
我在linux服務(wù)器上,用screen開了socketio。前面幾個小時就可以正常運行,比如把客戶端分組,然后廣播什么的。但是后面總是跑了十幾個小時后,客戶端連的上,但是就是只能觸發(fā)連接時的函數(shù),然后其他都觸發(fā)不了。網(wǎng)上找了很多資料也不知道怎么改,打算實在不行就寫個定時腳本在開啟一遍。大神們有什么更好的解決辦法嗎
self::$sender_io->on('connection', function($socket){
// 當(dāng)客戶端發(fā)來登錄事件時觸發(fā)
$socket->on('login', function ($uid)use($socket){
// global $uidConnectionMap, $last_online_count, $last_online_page_count;
// 已經(jīng)登錄過了
if(isset($socket->uid)){
return;
}
// 更新對應(yīng)uid的在線數(shù)據(jù)
$uid = (string)$uid;
if(!isset(self::$uidConnectionMap))
{
self::$uidConnectionMap = 0;
}
// 這個uid有++$uidConnectionMap個socket連接
self::$uidConnectionMap=1+self::$uidConnectionMap;
// 將這個連接加入到uid分組,方便針對uid推送數(shù)據(jù)
$socket->join($uid);
$socket->uid = $uid;
// 更新這個socket對應(yīng)頁面的在線數(shù)據(jù)
$last_count=self::$last_online_count;
$last_page_count=self::$last_online_page_count;
$socket->emit('update_online_count', "當(dāng)前<b>{$last_count}</b>人在線,共打開<b>{$last_page_count}</b>個頁面");
});
```?
?
?