PHP之使用swoole统计在线人数和ID案例讲解

admin3年前PHP教程32

$server->connections

// s e r v e r − > c o n n e c t i o n s 遍 历 所 有 w e b s o c k e t 连 接 用 户 的 f d , 给 所 有 用 户 推 送 统 计 人 数 : c o u n t ( server->connections 遍历所有websocket连接用户的fd,给所有用户推送 统计人数:count( server−>connections遍历所有websocket连接用户的fd,给所有用户推送统计人数:count(server->connections)
例子:
在开启或关闭时统计在线人数
开启


$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    $arr = array('action'=>'count','num'=>count($server->connections));
    $jsonTo = json_encode($arr);
    echo "在线人数:{$jsonTo};server: handshake success with fd={$request->fd}\n";
});

关闭


$server->on('close', function ($ser, $fd) {
    $arr = array('action'=>'count','num'=>count($server->connections));
    $jsonTo = json_encode($arr);
    echo "在线人数:{$jsonTo};client {$fd} closed\n";
});

出现错误:PHP Fatal error: Uncaught Swoole\Exception: failed to listen server port[0.0.0.0:9502], Error: Address already in use

这是因为swoole调试由于开启了进程守护,导至报错
关掉进行就,在重新启动就不会了
1 查看我的 swoole 监听端口号 9502


//查看端口
netstat -anp  | grep  9502
//关掉守护
kill -9 174739

再重启服务

参考:

wenda.swoole/detail/106719
51zuso/admin/p/710

到此这篇关于PHP之使用swoole统计在线人数和ID案例讲解的文章就介绍到这了,更多相关PHP之使用swoole统计在线人数和ID内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

php优化查询foreach代码实例讲解

php代码优化应避免在php foreach里面进行sql查询以下代码示例使用了laravel的操作数据库api,eloquent ormforeach里面执行两次sql查询// $datas 要返回...

php数据流中第K大元素的计算方法及代码分析

设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。计算方法1、直接使用最小堆,堆的大小为 k,这样保证空间占用最小,最小堆的根节点是就是最小值,也是我们...

PHP反射机制案例讲解

简介就算是类成员定义为private也可以在外部访问,不用创建类的实例也可以访问类的成员和方法。PHP自5.0版本以后添加了反射机制,它提供了一套强大的反射API,允许你在PHP运行环境中,访问和使用...

php项目接入xxl-job调度系统的示例详解

目录1. 部署xxl-job调度中心2. 整合xxl-job调度系统2.1 创建执行器项目2.2 新增执行器 2.3 部署执行器项目2.4 新增GLUE模式任务2.5 编写php代...

php语法技巧代码实例

1. DIRECTORY_SEPARATOR 与 PATH_SEPARATORDIRECTORY_SEPARATOR:路径分隔符,linux上就是‘/' &nb...

聊聊PHP中删除字符串的逗号和尾部斜杠的方法

正如标题所述,本文将给大家通过两个示例来介绍PHP删除字符串中的逗号以及尾部斜杠的方法,感兴趣的朋友咱们一起继续往下看吧~下面我们通过具体的实例分别讲解:第一个示例的要求则是“编写一个PH...