第一步:创建一个写队列的程序
$config = [
'host' => "172.22.0.5",
'port' => "5672",
'vhost' => "/guest",
'login' => "guest",
'password' => "123456",
];
$exchange_name = "test_exchange1";
$routs = "name.zhangsan";
$conn = new AMQPConnection($config);
if (!$conn->connect()) {
throw new Exception("失败");
}
$channel = new AMQPChannel($conn);
$exchange = new AMQPExchange($channel);
$exchange->setName($exchange_name);
$exchange->setType('topic');
$exchange->setFlags(1);
$exchange->declareExchange();
$message = "hello zhangsan";
$exchange->publish($message, $routs);
$conn->disconnect();
第二步:写一个消费队列的程序
$config = [
'host' => "172.22.0.5",
'port' => "5672",
'vhost' => "/guest",
'login' => "guest",
'password' => "123456",
];
$routs = "name.*";
$conn = new AMQPConnection($config);
if (!$conn->connect()) {
throw new Exception("链接失败");
}
$exchange_name = "test_exchange";
$channel = new AMQPChannel($conn);
$exchange = new AMQPExchange($channel);
$exchange->setType('topic');
$exchange->setName("test_exchange1");
$exchange->declareExchange();
$queue = new AMQPQueue($channel);
$queue->setName("queue1");
$queue->setFlags(AMQP_DURABLE);
$queue->declareQueue();
$queue->bind("test_exchange", $routs);
while (true) {
sleep(1);
$queue->consume('callback_fuction');
}
$conn->disconnect();
function callback_fuction($envelope, AMQPQueue $queue)
{
echo $msg = $envelope->getBody();
$queue->ack($envelope->getDeliveryTag());
}