Redis中如何将订阅消息发到WebSocket客户端
发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,PHP 的redis扩展是阻塞式 IO ,使用订阅/发布模式时,会导致整个进程进入阻塞。因此必须使用Swoole\Redis异步客户端来实现。实例代码$server = new swoole_webs
千家信息网最后更新 2024年10月04日Redis中如何将订阅消息发到WebSocket客户端
PHP 的redis扩展是阻塞式 IO ,使用订阅/发布模式时,会导致整个进程进入阻塞。因此必须使用Swoole\Redis异步客户端来实现。
实例代码
$server = new swoole_websocket_server("0.0.0.0", 9501);$server->on('workerStart', function ($server, $workerId) { $client = new swoole_redis; $client->on('message', function (swoole_redis $client, $result) use ($server) { if ($result[0] == 'message') { foreach($server->connections as $fd) { $server->push($fd, $result[1]); } } }); $client->connect('127.0.0.1', 6379, function (swoole_redis $client, $result) { $client->subscribe('msg_0'); });});$server->on('open', function ($server, $request) {});$server->on('message', function (swoole_websocket_server $server, $frame) { $server->push($frame->fd, "hello");});$server->on('close', function ($serv, $fd) {});$server->start();
实现过程
在进程启动(onWorkerStart)时创建了Swoole\Redis客户端,连接到Redis服务器
连接成功后,订阅msg_0主题的消息
当有新的message时,Swoole\Redis会触发onMessage事件回调
在这个回调函数中使用$server->connections遍历服务器所有的连接,发送消息
以上就是实现从Redis中订阅消息转发到 WebSocket 客户端的详细内容,更多请关注其它相关文章!
客户
消息
订阅
客户端
服务器
进程
服务
阻塞
成功
主题
事件
代码
内容
函数
实例
就是
文章
更多
模式
端的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安全教育教案网络安全
数据库模型与技术
昆山营销网络技术费用
网络安全运维收费标准
徐州软件开发公司在哪里
数据库三大应用
数据库基础的实验总结
即时通讯软件开发口碑佳
江西计算机网络技术大赛2021
朝阳会员报单软件开发设计
初中学校网络安全宣传周活动总结
国际网络安全保护管理办法
校长网络安全和信息工作会讲话
软件开发做一个学生档案要多久
手机如何查看网络安全密钥
nc 数据库备份覆盖
数据库系统与人工智能
山大鸥玛软件开发有限公司介绍
腾讯网络安全战队
pubwinol管理服务器
软件开发项目外包资质
杭州飚游网络技术有限公司
康林网络技术有限公司
海格网络技术员
网站数据库上传显示设备没有空间
软件开发后都有哪些版本
软件开发越学越难吗
军工网络安全事件
专网整合服务器简单吗
软件开发前置是什么意思