receive.php 服务端接收信息
注意 hello-test1 列队名称
依赖 php-amqplib 插件
// file: receive.php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
// RabbitMQ 默认端口5672, 默认账号密码: guest / guest
$host = 'localhost';
$port = '5672';
$username = 'ruffian';
$password = '******';
$connection = new AMQPStreamConnection($host, $port, $username, $password);
$channel = $connection->channel();
$queueName = 'hello-test1';hello-test1 列队名称--和客户端列队名称对应
$channel->queue_declare($queueName, false, false, false, false);
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$callback = function($msg) {
echo " [x] Received: {", $msg->body, "}\n";
};
$channel->basic_consume($queueName, "", false, true, false, false, $callback);
while(count($channel->callbacks)) {
$channel->wait();
}
send.php 客户端发送信息
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
// RabbitMQ 默认端口5672, 默认账号密码: guest / guest
$host = 'localhost';
$port = '5672';
$username = 'ruffian';
$password = '*****';
// $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$connection = new AMQPStreamConnection($host, $port, $username, $password);
$channel = $connection->channel();
$channel->queue_declare('hello-test', false, false, false, false);
$msg = new AMQPMessage('Hello3 World!');
$channel->basic_publish($msg, "", 'hello-test1');//hello-test1 列队名称--和服务器列队名称对应
echo " [x] Sent 'Hello4 World!'\n";
$channel->close();
$connection->close();