本文共 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/