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有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...相关推荐

  1. 渡一教育_Java每日一练:建立Statement的作用是什么、前端Console.log( Boolean(‘‘))输出的是什么、如果希望1监听TCP端口为9000,服务端应该怎样创建socket

    系列文章目录 文章目录 系列文章目录 题目1java部分建立Statement的作用是什么(答案在最后公布) 题目1 - 答案 ==解析== ==答案== 题目2 前端 js部分 ==答案== 题目3 ...

  2. 卡达8梯控系统怎么破解求大神指点迷津谢谢!!!

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  3. Unity中进行网络通信:三:unity客户端和Unity服务端互相发消息

    目录 一.目的 1.想知道:Unity中进行网络通信:unity客户端和Unity服务端互相发消息 二.参考 1.unity3D中使用Socket进行数据通信(三) 三.操作:一:完成:在同一个Uni ...

  4. 请求各位大神 只有微信头像和昵称怎么查到微信号

     有个很中意的姑娘 请求各位大神 只有微信头像和昵称怎么查到微信号

  5. grpc 客户端的context 服务端获取不到_MLamp;DEV[10] | gRPC的应用

    上一期和大家谈到了gRPC的快速开始,我么哪知道了gRPC是什么以及怎么快速启动,那么现在,我们来看看这个玩意具体内部是怎么运作的,这里我们同样以helloworld这个为例子来去谈.首先上期内容在这 ...

  6. Linux Socket 两个客户端通信,服务端作为中转

    Socket 两个客户端通信,服务端作为中转 Socket两个客户端通信,服务端作为中转,通过sockket的通信原理,简单的做了一个以c语言写的服务端,与自己制作的Android app 与树莓派为 ...

  7. oracle 客户端无法连接,Oracle客户端无法连接服务端解决方法及步骤

    客户端无法连接服务端数据库,原因有网络,配置,文件访问权限,数据库服务是否已启动 等问题导致,一般排查的步骤如下: 1.检查操作系统级别网络是否通畅 ping 192.168.10.1 2.检查数据库 ...

  8. 附件统一处理starter,含附件客户端和附件服务端

    文章目录 附件统一处理starter,可分别作为附件客户端和附件服务端使用 一 关于项目中附件的概述 二 概要描述 三 附件starter功能划分 3.1 附件服务器,真实的存储附件 3.1.1 为前 ...

  9. android 仿微信demo————微信消息界面实现(服务端)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

最新文章

  1. 使用MLX90640自制红外热像仪(一):MLX90640介绍与API库移植
  2. Apex Integration Overview
  3. 【工作秘籍】Facebook内部高效工作大揭秘
  4. Linux 下 YUM 安装 PHP 5.5
  5. 寄存器(cpu工作原理)
  6. [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
  7. 计算机专业的三行情书,各专业三行情书,看懂你就是全能学霸!
  8. 上传图片和音频到DB
  9. mysql rowid踢重_MySQL中主键与rowid的使用陷阱总结
  10. 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
  11. 方差公式初三_初中数学,一元二次方程的解法:公式法、因式分解法和十字相乘法基础练习...
  12. PAT之图:遍历、最短路径dijkstra
  13. php通过js连接打印机直接打印PDF文件
  14. Intellij IDEA创建Scala项目
  15. vb rs.recordCount=-1的解决办法
  16. Noya批量加解密工具使用方法
  17. 如何查询域名whois?域名whois查询能获得哪些信息
  18. 分析方法笔记--AARRR模型
  19. ffmpeg probe一个文件的过程
  20. java通信—网络聊天室网络画板(简陋版)

热门文章

  1. P3865 【模板】ST表
  2. SQL重复记录查询的几种方法
  3. DDR3和eMMC区别
  4. vue 的常用模块安指令(持续记录)
  5. 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置script元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分...
  6. multiselect多选下拉框
  7. php归档函数(按时间)实现
  8. USACO 1.1 Your Ride Is Here
  9. Js正则表达式数字或者带小数点的数字
  10. Layui --- [Mar]给渲染后的表格加CSS样式