Redis中如何将订阅消息发到WebSocket客户端
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,PHP 的redis扩展是阻塞式 IO ,使用订阅/发布模式时,会导致整个进程进入阻塞。因此必须使用Swoole\Redis异步客户端来实现。实例代码$server = new swoole_webs
千家信息网最后更新 2025年02月03日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安全错误
数据库的锁怎样保障安全
华为2288h服务器价格
贵阳网络安全检查
天堂W排队自动切服务器
迷你世界直播现场炸服务器
红帽杯网络安全攻防大赛报名
工业网络技术专业优点
软件开发人员外包怎么收费
软件开发的活动有哪些条件
数据库系统教程知识点总结
开票软件怎么连接服务器失败
服务器提示xdb
wind数据库有时候加载不出
网络技术保障岗待遇怎么样
数据库基础及应用樊重俊
赣州服务器机箱机柜
规范化的意义数据库
创魔维修服务器后
vb2010数据库怎么用
手机设置网络安全宣传周
数据库计算出错
电商服务器安全测试
创建数据库mysql的语句是
上海智能网络技术怎么用
三维Gis应用软件开发
驾校软件开发项目标书案例
芜湖erp软件开发价格表
电子商务的服务器的安全
突显网络安全
服务器怎么调出任务管理器
虚拟的服务器