php的amqp应该怎样使用?
我安装了rabbitmq和php的amqp扩展,但是不知道怎么使用,我在网上搜了教程,但是不是太懂,
这是send.php文件,
$conf=[
'host'=>'localhost',
'port'=>'5672',
'login'=>'guest',
'password'=>'guest',
'vhost'=>'/'
];
$connect=new \AMQPConnection($conf);
if(!$connect->connect()){
die('connetc error');
}
$message = "TEST MESSAGE! 测试消息!";
$channel=new AMQPChannel($connect);
$exchange=new AMQPExchange($channel);
$exchange->setName('zblExchange');
$queue = new AMQPQueue($channel);
$queue->setName('zblQueue');
for($i=0; $i<5; ++$i){
echo "Send Message:".$exchange->publish($message, 'zblQueue')."\n";
}
//$channel->commitTransaction(); //提交事务
$connect->disconnect();
这是receive.php文件
$conf=[
'host'=>'localhost',
'port'=>'5672',
'login'=>'guest',
'password'=>'guest',
'vhost'=>'/'
];
$connect=new AMQPConnection($conf);
if(!$connect->connect()){
die('connetc error');
}
$channel=new AMQPChannel($connect);
$exchange=new AMQPExchange($channel);
$exchange->setName('zblExchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
//echo "Exchange Status:".$exchange->declare()."\n";
$queue = new AMQPQueue($channel);
$queue->setName('zblQueue');
$queue->setFlags(AMQP_DURABLE); //持久化
echo "Message Total:".$queue->declare()."\n";
echo 'Queue Bind: '.$queue->bind('zblExchange', 'zblQueue')."\n";
echo "Message:\n";
//while(True){
$queue->consume('processMessage');
//echo'hello';
//$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答
//}
$connect->disconnect();
function processMessage($envelope, $queue) {
$msg = $envelope->getBody();
echo $msg."\n"; //处理消息
$queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答
}
使用浏览器先访问send.php没什么问题,再访问receive.php是504 gateway timeout,使用命令行访问send.php的时候出现致命错误AMQPConnection类找不到,我不知道是怎么回事,使用php -m的时候找不到安装的amqp扩展,但是使用phpinfo通过浏览器访问的时候显示的是amqp是加载的,使用环境是centos 7,nginx 1.6.3,php 5.6.9,请问我这里到底是哪里出了问题?
相关阅读:
新浪云存储支持SAE的云豆支付吗?
android scrollTo为什么不更新VIEW的x和y?
有1年php编程经验,想学习Python编写爬虫,请大家推荐本质量高的书,想从0基础开始系统的学习,web方向
JS 中为什么 isNaN({}) 是 true 呢?
MySQL 备份和检查修复问题?
SyntaxHighlighter代码高亮显示的乱码问题
Github新手首次PR请求帮助!!!
关于gitbash一直报:sh: __git_ps1: command not found的解决办法
单链表的部分逆置问题。
请问大家有没有Dreamweaver的VSB页面组件插件?
如何实现logstash-input-jdbc 增量读取SQLserver数据库
KVO观察的是对象指针的变化,还是对象内容的变化?
Topercoder无法登陆问题?
在页面渲染的时候样式乱了
java 多线程同步 synchronized 为什么将vehicleSum换成vehicleSy就可以正确的进行同步了
php获取锚点的内容
Flask-FlatPages如何启用代码高亮插件
如何在lazarus (类似delphi的IDE) 中实现一个MDI 多文档 程序?
java 加密 excel
Python:使用sax解析包含多个子节点的xml