1
|
$server ->connections |
// s e r v e r − > c o n n e c t i o n s 遍 歷 所 有 w e b s o c k e t 連 接 用 戶 的 f d , 給 所 有 用 戶 推 送 統 計 人 數 : c o u n t ( server->connections 遍歷所有websocket連接用戶的fd,給所有用戶推送 統計人數:count( server−>connections遍歷所有websocket連接用戶的fd,給所有用戶推送統計人數:count(server->connections)
例子:
在開啟或關閉時統計在線人數
開啟
1
2
3
4
5
|
$server ->on( 'open' , function (Swoole\WebSocket\Server $server , $request ) { $arr = array ( 'action' => 'count' , 'num' => count ( $server ->connections)); $jsonTo = json_encode( $arr ); echo "在線人數:{$jsonTo};server: handshake success with fd={$request->fd}\n" ; }); |
關閉
1
2
3
4
5
|
$server ->on( 'close' , function ( $ser , $fd ) { $arr = array ( 'action' => 'count' , 'num' => count ( $server ->connections)); $jsonTo = json_encode( $arr ); echo "在線人數:{$jsonTo};client {$fd} closed\n" ; }); |
出現錯誤:PHP Fatal error: Uncaught Swoole\Exception: failed to listen server port[0.0.0.0:9502], Error: Address already in use
這是因為swoole調試由于開啟了進程守護,導至報錯
關掉進行就,在重新啟動就不會了
1 查看我的 swoole 監聽端口號 9502
1
2
3
4
|
// 查看端口 netstat -anp | grep 9502 // 關掉守護 kill -9 174739 |
再重啟服務
參考:
https://wenda.swoole.com/detail/106719
http://www.51zuso.com/admin/p/710.html
到此這篇關于PHP之使用swoole統計在線人數和ID案例講解的文章就介紹到這了,更多相關PHP之使用swoole統計在線人數和ID內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/haibo0668/article/details/118193894