您好,登錄后才能下訂單哦!
小編給大家分享一下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如何統計在線人數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。