workerman统计在线人数实现代码:
服务器端代码
count = 1;
$worker->onConnect = function($connection)
{
// 有新的客户端连接时,连接数+1
global $connection_count;
++$connection_count;
echo "now connection_count=$connection_count\n";
};
// 进程启动时设置一个定时器,定时向所有客户端连接发送数据
$worker->onWorkerStart = function($worker)
{
// 定时,每10秒一次
Timer::add(1, function()use($worker)
{
global $connection_count;
// 遍历当前进程所有的客户端连接,发送当前服务器的时间
foreach($worker->connections as $connection)
{
$connection->send($connection_count);
}
});
};
$worker->onClose = function($connection)
{
// 客户端关闭时,连接数-1
global $connection_count;
$connection_count--;
echo "now connection_count=$connection_count\n";
};
// 运行worker
Worker::runAll();当客户端与Workerman建立连接时(TCP三次握手完成后)触发的回调函数。每个连接只会触发一次onConnect回调。
当客户端连接与Workerman断开时触发的回调函数。不管连接是如何断开的,只要断开就会触发onClose。每个连接只会触发一次onClose。
客户端代码
上一篇:重启swoole的方法
下一篇:workerman启动错误怎么办