workerman怎么統(tǒng)計在線人數(shù)

workerman怎么統(tǒng)計在線人數(shù)

workerman統(tǒng)計在線人數(shù)實現(xiàn)代碼:(推薦: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;); // 全局變量,保存當前進程的客戶端連接數(shù) $connection_count = 0;  // 這個例子中進程數(shù)必須為1 $worker->count?=?1; $worker-&gt;onConnect?=?function($connection) { ????//?有新的客戶端連接時,連接數(shù)+1 ????global?$connection_count; ???? ????++$connection_count; ????echo?"now?connection_count=$connection_countn"; }; //?進程啟動時設置一個定時器,定時向所有客戶端連接發(fā)送數(shù)據 $worker-&gt;onWorkerStart?=?function($worker) { ????//?定時,每10秒一次 ????Timer::add(1,?function()use($worker) ????{ ????????global?$connection_count; ????????//?遍歷當前進程所有的客戶端連接,發(fā)送當前服務器的時間 ????????foreach($worker-&gt;connections?as?$connection) ????????{ ????????????$connection-&gt;send($connection_count); ????????} ????}); }; $worker-&gt;onClose?=?function($connection) { ????//?客戶端關閉時,連接數(shù)-1 ????global?$connection_count; ????$connection_count--; ????echo?"now?connection_count=$connection_countn"; }; //?運行worker Worker::runAll();

當客戶端與Workerman建立連接時(TCP三次握手完成后)觸發(fā)的回調函數(shù)。每個連接只會觸發(fā)一次onConnect回調。

當客戶端連接與Workerman斷開時觸發(fā)的回調函數(shù)。不管連接是如何斷開的,只要斷開就會觸發(fā)onClose。每個連接只會觸發(fā)一次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("給服務端發(fā)送一個字符串:tom"); }; ws.onmessage = function(e) {     //alert("收到服務端的消息:" + e.data);     console.log("收到服務端的消息:" + e.data); };  </script>

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享