workerman怎么统计在线人数

workerman怎么统计在线人数

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

服务器端代码

<?php use workermanWorker; use WorkermanLibTimer; require_once __DIR__ . &#39;/Workerman/Autoloader.php&#39;;  $worker = new Worker(&#39;websocket://127.0.0.1:2345&#39;); // 全局变量,保存当前进程的客户端连接数 $connection_count = 0;  // 这个例子中进程数必须为1 $worker->count = 1; $worker-&gt;onConnect = function($connection) {     // 有新的客户端连接时,连接数+1     global $connection_count;          ++$connection_count;     echo "now connection_count=$connection_countn"; }; // 进程启动时设置一个定时器,定时向所有客户端连接发送数据 $worker-&gt;onWorkerStart = function($worker) {     // 定时,每10秒一次     Timer::add(1, function()use($worker)     {         global $connection_count;         // 遍历当前进程所有的客户端连接,发送当前服务器的时间         foreach($worker-&gt;connections as $connection)         {             $connection-&gt;send($connection_count);         }     }); }; $worker-&gt;onClose = function($connection) {     // 客户端关闭时,连接数-1     global $connection_count;     $connection_count--;     echo "now connection_count=$connection_countn"; }; // 运行worker Worker::runAll();

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

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

客户端代码

<?php ?><script></script><script>  function ds(){ 		$.get(&#39;127.0.0.1:2345&#39;,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(&#39;tom&#39;);     //alert("给服务端发送一个字符串:tom"); }; ws.onmessage = function(e) {     //alert("收到服务端的消息:" + e.data);     console.log("收到服务端的消息:" + e.data); };  </script>

以上就是

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享