1. 程式人生 > >PHP rabbitmq

PHP rabbitmq

管理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();

?>