PHP rabbitmq
阿新 • • 發佈:2018-12-29
管理rabbitmq 可以通過rabbitmqctl控制:啟停(基本功能),節點,Exchange&queue,使用者許可權等
命令示意參考http://my.oschina.net/guol/blog/186445<?php
//SERVER
$conn = new AMQPConnection(); //建立連線
if (!$conn->connect())die('Cannot connect');
$channel = new AMQPChannel($conn); //建立會話通道
$exchange = new AMQPExchange($channel); //宣告一個交換機
$exchange->setName('exchange1'); //exchange名
$exchange->setType(AMQP_EX_TYPE_DIRECT); //交換型別
$exchange->setFlags(AMQP_DURABLE); //設定持久化
$exchange->declare(); //完成
$exchange->publish(json_encode(array('hello world')), 'key2'); //生產訊息到交換機,因為交換機宣告的型別所以要接收的話還要繫結同樣的KEY
?>
<?php
//CLIENT
$conn = new AMQPConnection(); //建立連線
if (!$conn->connect())
die('Cannot connect');
$channel = new AMQPChannel($conn); //建立會話通道
$queue = new AMQPQueue($channel);//宣告一個佇列
$queue->setName('queue1'); //queue名
$queue->setFlags(AMQP_DURABLE); //設定持久化
$queue->declare();//建立完成
$queue->bind('exchange1', 'key2'); //繫結到交換機,指定key
while(true) {
if ($message = $queue->get(AMQP_AUTOACK)) {
if ($message) {
var_dump(json_decode($message->getBody(), true));
}
} else {
sleep(10);
}
}
$conn->disconnect();
?>