rabbitmq PHP代码示例
来源:互联网 发布:centos ssh免密码登录 编辑:程序博客网 时间:2024/05/22 06:35
rabbitmq 安装及基础介绍请参考:http://www.cnblogs.com/diegodu/p/4971586.html
direct类型:
provider 端代码
//设置你的连接$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest','vhost' =>'/');$conn = new AMQPConnection($conn_args);if (!$conn->connect()) {echo "连接建立失败";exit;}$channel = new AMQPChannel($conn);$e_name = 'e_exchange'; //交换机名$key = 'key_one'; //路由key//创建交换机$ex = new AMQPExchange($channel);$ex->setName($e_name);//设置交换机名称$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型$ex->setFlags(AMQP_DURABLE); //持久化$ex->declareExchange(); //声明交换机echo $ex->publish('hello world',$key)."\n";}
consumer 端代码
$key='key_one';//连接RabbitMQ$conn_args = array( 'host'=>'127.0.0.1' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');$conn = new AMQPConnection($conn_args);$conn->connect();$channel = new AMQPChannel($conn);$q = new AMQPQueue($channel);$q->setName('queue'); //设置队列名称$q->setFlags(AMQP_DURABLE); //持久化设置$q->declareQueue();//声明队列$q->bind('e_exchange',$key); //绑定交换机while(True){$q->consume('consumer'); //回调方法为consumer}$conn->disconnect();function consumer($envelope, $queue) {$msg = $envelope->getBody();echo $msg."\n"; //处理消息$queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答
}
fanout 模式
provider
/设置你的连接$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest','vhost' =>'/');$conn = new AMQPConnection($conn_args);if (!$conn->connect()) {echo "连接建立失败";exit;}$channel = new AMQPChannel($conn);$e_name = 'ex_fanout'; //交换机名//创建交换机$ex = new AMQPExchange($channel);$ex->setName($e_name);//设置交换机名称$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型$ex->setFlags(AMQP_DURABLE); //持久化$ex->declareExchange(); //声明交换机echo $ex->publish('hello world')."\n";
consumer
//连接RabbitMQ$conn_args = array( 'host'=>'127.0.0.1' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');$conn = new AMQPConnection($conn_args);$conn->connect();$channel = new AMQPChannel($conn);$q = new AMQPQueue($channel);$q->setName('queue_one'); //设置队列名称$q->setFlags(AMQP_DURABLE); //持久化设置$q->declareQueue();//声明队列$q->bind('ex_fanout'); //绑定交换机while(True){$q->consume('consumer'); //回调方法为consumer}$conn->disconnect();function consumer($envelope, $queue) {$msg = $envelope->getBody();echo $msg."\n"; //处理消息$queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答}
阅读全文
0 0
- rabbitmq PHP代码示例
- PHP+RabbitMq示例展示
- php rabbitmq延迟队列示例
- Rabbitmq 概述及代码示例
- RabbitMQ使用场景以及代码示例
- php示例代码
- php的rabbitmq队列的消费代码
- RabbitMQ基础学习笔记(C#代码示例)
- PHP SOAP服务示例代码
- 一个php日历示例代码
- php分页函数示例代码
- php+mysql分页代码示例
- PHP函数柯里化代码示例
- PHP操作xml示例代码
- PHP操作xml示例代码
- php curl https代码示例
- php操作mysqli(示例代码)
- PHP rabbitmq
- HDU 6058 Kanade's sum
- openstack中删除虚拟主机,状态一直deleting
- maven-tomcat热部署插件
- 深入理解Java:类加载机制及反射
- hdu1171 01背包
- rabbitmq PHP代码示例
- MD5加密
- Unable to resolve target 'android-17'
- linux驱动由浅入深系列:基于高通平台分析触摸屏(TP)、虚拟按键驱动
- 冒泡排序
- 【设计模式】状态模式和职责链的对比
- HTML
- 《Docker指令1》-----Pure Love
- 一致性hash算法介绍以及Java实现