最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

workerman怎么统计在线人数

来源:动视网 责编:小采 时间:2020-11-03 18:23:15
文档

workerman怎么统计在线人数

workerman怎么统计在线人数:workerman统计在线人数实现代码:(推荐:workerman教程)服务器端代码<php use Workerman\Worker; use Workerman\Lib\Timer; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker =
推荐度:
导读workerman怎么统计在线人数:workerman统计在线人数实现代码:(推荐:workerman教程)服务器端代码<php use Workerman\Worker; use Workerman\Lib\Timer; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker =


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

服务器端代码

<?php
use WorkermanWorker;
use WorkermanLibTimer;
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
";
};
// 进程启动时设置一个定时器,定时向所有客户端连接发送数据
$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
";
};
// 运行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怎么统计在线人数

workerman怎么统计在线人数:workerman统计在线人数实现代码:(推荐:workerman教程)服务器端代码<php use Workerman\Worker; use Workerman\Lib\Timer; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker =
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top