要使用 amqp,您需要遵循以下步骤:安装 amqp 库。使用代码建立与 amqp 代理的连接。创建一个频道。声明一个交换器。声明一个队列。将队列绑定到交换器。发送消息。使用回调函数接收消息。关闭连接。
php 中使用 AMQP 的方法
前言
AMQP(高级消息队列协议)是一种广泛使用的消息队列协议,允许应用程序彼此可靠地交换消息。本文将介绍如何在 PHP 中使用 AMQP。
使用 AMQP 的步骤
1. 安装 AMQP 库
首先,您需要使用 composer 安装 AMQP 库:
立即学习“PHP免费学习笔记(深入)”;
2. 建立连接
使用以下代码建立与 AMQP 代理的连接:
1
2
3
4
5
6
7
8
9
|
use PhpAmqpLib\Connection\AMQPStreamconnection;
$host = 'localhost' ;
$port = 5672;
$user = 'guest' ;
$password = 'guest' ;
$vhost = '/' ;
$connection = new AMQPStreamConnection( $host , $port , $user , $password , $vhost );
|
3. 创建频道
创建一个频道来发送和接收消息:
1
|
$channel = $connection ->channel();
|
4. 声明交换器
交换器负责将消息路由到正确的队列。声明一个交换器:
1
2
3
4
5
6
|
$exchangeName = 'my-exchange' ;
$exchangeType = 'direct' ;
$passive = false;
$durable = true;
$autoDelete = false;
$channel ->exchange_declare( $exchangeName , $exchangeType , $passive , $durable , $autoDelete );
|
5. 声明队列
队列存储消息。声明一个队列:
1
2
3
4
5
6
|
$queueName = 'my-queue' ;
$passive = false;
$durable = true;
$exclusive = false;
$autoDelete = false;
$channel ->queue_declare( $queueName , $passive , $durable , $exclusive , $autoDelete );
|
6. 绑定队列到交换器
将队列绑定到交换器,以便消息可以从交换器流向队列:
1
2
|
$bindingKey = 'my-binding-key' ;
$channel ->queue_bind( $queueName , $exchangeName , $bindingKey );
|
7. 发送消息
使用以下代码发送消息:
1
2
|
$messageBody = 'Hello, world!' ;
$channel ->basic_publish( $messageBody , $exchangeName , $routingKey );
|
8. 接收消息
使用回调函数接收消息:
1
2
3
|
$channel ->basic_consume( $queueName , '' , false, true, false, false, function (AMQ.envelope $envelope , AMQPMessage $message ) {
echo 'Received message: ' . $message ->getBody() . PHP_EOL;
});
|
9. 关闭连接
当您完成时,请关闭连接:
1
2
|
$channel ->close();
$connection ->close();
|