workerman怎么统计在线人数

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

workerman怎么统计在线人数

workerman统计在线人数实现代码:(推荐:workerman教程)

服务器端代码

<?phpuse Workerman\Worker;use Workerman\Lib\Timer;require_once __DIR__ . '/Workerman/Autoloader.php';$worker = new Worker('websocket://127.0.0.1:2345');// 全局变量,保存当前进程的客户端连接数$connection_count = 0;// 这个例子中进程数必须为1$worker->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";};// 运行workerWorker::runAll();
登录后复制

当客户端与Workerman建立连接时(TCP三次握手完成后)触发的回调函数。每个连接只会触发一次onConnect回调。

当客户端连接与Workerman断开时触发的回调函数。不管连接是如何断开的,只要断开就会触发onClose。每个连接只会触发一次onClose。

客户端代码

<?php?><script src="https://code.jquery.com/jquery-3.1.1.min.js"></script><script> function ds(){$.get('127.0.0.1:2345',function(data,status){console.log("Data: " + data + "nStatus: " + status);}) }// window.setInterval(ds,1000);ws = new WebSocket("ws://127.0.0.1:2345");ws.onopen = function() {    //alert("连接成功");    //ws.send('tom');    //alert("给服务端发送一个字符串:tom");};ws.onmessage = function(e) {    //alert("收到服务端的消息:" + e.data);    console.log("收到服务端的消息:" + e.data);};</script>
登录后复制

以上就是workerman怎么统计在线人数的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:thinkphp 无法加载模块-
下一篇:yii2怎么进行http请求处理

发表评论

关闭广告
关闭广告