
workerman统计在线人数完成代码:(引荐:workerman教程)
服务器端代码
<?php use 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"; }; // 运转worker Worker::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怎样统计在线人数的细致内容,更多请关注ki4网别的相干文章!