博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在windows中安装RabbitMQ扩展
阅读量:4182 次
发布时间:2019-05-26

本文共 2094 字,大约阅读时间需要 6 分钟。

1、下载php_amqp扩展,地址 http://pecl.php.net/package/amqp/1.4.0/windows

2、我用的是PHP Study,解压php_amqp压缩包后,将php_amqp.dll放入php安装目录的ext目录下。

3、在配置文件php.ini中找到 [amqp] 这一行,在下面一行加入extension=php_amqp.dll,然后在php study中点击重启。

注意事项:

1、一定要事先通过 phpinfo() 查看php的版本,以及PHP模块是x86还是x64的,是TS的还是NTS的,然后下载对应的php_amqp。

2、消息接收者必须在命令行模式下运行。

【消息发送者代码】

'127.0.0.1', 'port' => '5672', 'login' => 'test', 'password' => 'test123', 'vhost'=>'/');$e_name = 'e_linvo'; //交换机名//$q_name = 'q_linvo'; //无需队列名$k_route = 'key_1'; //路由key//创建连接和channel$conn = new AMQPConnection($conn_args);if (!$conn->connect()) { die("Cannot connect to the broker!\n");}$channel = new AMQPChannel($conn);//创建交换机对象$ex = new AMQPExchange($channel);$ex->setName($e_name);//消息内容$message = "TEST MESSAGE! hello word !\n" . time() . "\n";//发送消息//$channel->startTransaction(); //开始事务for($i=0; $i<5; ++$i){ echo "Send Message:".$ex->publish($message, $k_route)."\n";}//$channel->commitTransaction(); //提交事务$conn->disconnect();

【消息接收者代码】
'127.0.0.1', 'port' => '5672', 'login' => 'test', 'password' => 'test123', 'vhost'=>'/');$e_name = 'e_linvo'; //交换机名$q_name = 'q_linvo'; //队列名$k_route = 'key_1'; //路由key//创建连接和channel$conn = new AMQPConnection($conn_args);if (!$conn->connect()) { die("Cannot connect to the broker!\n");}$channel = new AMQPChannel($conn);//创建交换机$ex = new AMQPExchange($channel);$ex->setName($e_name);$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型$ex->setFlags(AMQP_DURABLE); //持久化echo "Exchange Status:".$ex->declare()."\n";//创建队列$q = new AMQPQueue($channel);$q->setName($q_name);$q->setFlags(AMQP_DURABLE); //持久化echo "Message Total:".$q->declare()."\n";//绑定交换机与队列,并指定路由键echo 'Queue Bind: '.$q->bind($e_name, $k_route)."\n";//阻塞模式接收消息echo "Message:\n";while(True){ $q->consume('processMessage'); //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答}$conn->disconnect();/*** 消费回调函数* 处理消息*/function processMessage($envelope, $queue) { $msg = $envelope->getBody(); echo $msg."\n"; //处理消息 file_put_contents('123.log', $msg); $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答}

转载地址:http://jgeai.baihongyu.com/

你可能感兴趣的文章
[转]C语言printf
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>