php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...
header("Content-Type:text/html;charset=utf-8");
use Workerman\Worker;
require_once __DIR__ . '/Autoloader.php';
// 注意:这里与上个例子不同,使用的是websocket协议
$ws_worker = new Worker("websocket://192.168.1.218:5556");
// 启动4个进程对外提供服务
$ws_worker->count = 4;
// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function($connection, $data)
{
$data = json_decode($data, true);
$conn_arg = array(
'host' => '192.168.1.100',
'port' => '5672',
'login' => 'qifaoa',
'password' => 'qifaoa@123',
'vhost' => '/',
);
foreach ($data as $k => $v) {
$exchange = $v;//交换机
$routing_key = $v;//路由key
$queue = $v;//队列
if (empty($exchange) || empty($routing_key) || empty($queue)) {
$connection->send('参数错误');
die();
}
//创建连接和channel
$conn = new AMQPConnection($conn_arg);
if (!$conn->connect()) {
$connection->send('rabbitmq连接失败');
die();
} else {
// echo '连接成功'."\n";
}
$channel = new AMQPChannel($conn);
//创建队列
$q = new AMQPQueue($channel);
$q->setName($queue);
$q->setFlags(AMQP_DURABLE);//设置队列持久化
$q->declareQueue();//声明创建队列
$q->bind($exchange, $routing_key);//绑定交换机,指定路由键
//消息获取
$message = $q->get(AMQP_AUTOACK);//自动应答机制
//判断消息是否存在
if ($message) {
$connection->send($message->getBody());
} else {
// echo json_encode('空');
}
$conn->disconnect();//关闭
}
};
//连接关闭
$ws_worker->onclose = function($connection) {
echo "connection close\n";
};
//连接错误
$worker->onError = function($connection, $code, $msg)
{
echo "error $code $msg\n";
};
// 运行worker
Worker::runAll();
php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...相关推荐
- 渡一教育_Java每日一练:建立Statement的作用是什么、前端Console.log( Boolean(‘‘))输出的是什么、如果希望1监听TCP端口为9000,服务端应该怎样创建socket
系列文章目录 文章目录 系列文章目录 题目1java部分建立Statement的作用是什么(答案在最后公布) 题目1 - 答案 ==解析== ==答案== 题目2 前端 js部分 ==答案== 题目3 ...
- 卡达8梯控系统怎么破解求大神指点迷津谢谢!!!
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- Unity中进行网络通信:三:unity客户端和Unity服务端互相发消息
目录 一.目的 1.想知道:Unity中进行网络通信:unity客户端和Unity服务端互相发消息 二.参考 1.unity3D中使用Socket进行数据通信(三) 三.操作:一:完成:在同一个Uni ...
- 请求各位大神 只有微信头像和昵称怎么查到微信号
有个很中意的姑娘 请求各位大神 只有微信头像和昵称怎么查到微信号
- grpc 客户端的context 服务端获取不到_MLamp;DEV[10] | gRPC的应用
上一期和大家谈到了gRPC的快速开始,我么哪知道了gRPC是什么以及怎么快速启动,那么现在,我们来看看这个玩意具体内部是怎么运作的,这里我们同样以helloworld这个为例子来去谈.首先上期内容在这 ...
- Linux Socket 两个客户端通信,服务端作为中转
Socket 两个客户端通信,服务端作为中转 Socket两个客户端通信,服务端作为中转,通过sockket的通信原理,简单的做了一个以c语言写的服务端,与自己制作的Android app 与树莓派为 ...
- oracle 客户端无法连接,Oracle客户端无法连接服务端解决方法及步骤
客户端无法连接服务端数据库,原因有网络,配置,文件访问权限,数据库服务是否已启动 等问题导致,一般排查的步骤如下: 1.检查操作系统级别网络是否通畅 ping 192.168.10.1 2.检查数据库 ...
- 附件统一处理starter,含附件客户端和附件服务端
文章目录 附件统一处理starter,可分别作为附件客户端和附件服务端使用 一 关于项目中附件的概述 二 概要描述 三 附件starter功能划分 3.1 附件服务器,真实的存储附件 3.1.1 为前 ...
- android 仿微信demo————微信消息界面实现(服务端)
android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...
最新文章
- 使用MLX90640自制红外热像仪(一):MLX90640介绍与API库移植
- Apex Integration Overview
- 【工作秘籍】Facebook内部高效工作大揭秘
- Linux 下 YUM 安装 PHP 5.5
- 寄存器(cpu工作原理)
- [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
- 计算机专业的三行情书,各专业三行情书,看懂你就是全能学霸!
- 上传图片和音频到DB
- mysql rowid踢重_MySQL中主键与rowid的使用陷阱总结
- 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
- 方差公式初三_初中数学,一元二次方程的解法:公式法、因式分解法和十字相乘法基础练习...
- PAT之图:遍历、最短路径dijkstra
- php通过js连接打印机直接打印PDF文件
- Intellij IDEA创建Scala项目
- vb rs.recordCount=-1的解决办法
- Noya批量加解密工具使用方法
- 如何查询域名whois?域名whois查询能获得哪些信息
- 分析方法笔记--AARRR模型
- ffmpeg probe一个文件的过程
- java通信—网络聊天室网络画板(简陋版)