PHP 是用 Stomp 協定,所以要先把Stomp 抓回來。

# wget http://stomp.fusesource.org/release/php/1.0/stomp-php-1.0.0.tar.gz
# tar -zxvf stomp-php-1.0.0.tar.gz
解壓完就有 Stomp 的 library啦。# tar -zxvf stomp-php-1.0.0.tar.gz
接著程式部份,只要 include STOMP 就好了。
下面是 Producer & Consumer 的程式碼。
Producer.php
<?php
// include a library
require_once("Stomp.php");
// make a connection
$con = new Stomp("tcp://localhost:61613");
// connect
$con->connect();
// send a message to the queue
for ($i=0; $i<10; $i++) {
$msg = "test" . $i;
$con->send("/queue/test", $msg, array('persistent' => 'true'));
echo "Sent message with body $msg \n";
}
// disconnect
$con->disconnect();
?>
Consumer.php<?php
// include a library
require_once("Stomp.php");
// make a connection
$con = new Stomp("tcp://localhost:61613");
// connect
$con->connect();
// subscribe to the queue
$con->subscribe("/queue/test");
while (1) {
// receive a message from the queue
$msg = $con->readFrame();
// do what you want with the message
if ( $msg != null) {
echo "Received message with body '$msg->body'\n";
// mark the message as received in the queue
$con->ack($msg);
} else {
echo "Failed to receive a message\n";
}
}
// disconnect
$con->disconnect();
?>
PS.設定 array('persistent' => 'true') ,這樣子才會存在資料庫中。搞定。

沒有留言:
張貼留言