workerman은 온라인 사용자 구현 코드를 계산합니다. (권장: workermantutorial)
서버 측 코드#🎜 🎜#
<?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 3방향 핸드셰이크가 완료된 후) 트리거되는 콜백 함수입니다. 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>
위 내용은 워커맨은 온라인에 있는 사람의 수를 어떻게 계산하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!