简单队列就是当redis的队列用,一个存,一个去,可以不用交换机,路由键之类的,
建立连接通道,声明队列,存就可以
生产者 send.php
<?php//引入类库require_once __DIR__ . '/vendor/autoload.php';use PhpAmqpLib\Connection\AMQPStreamConnection;use PhpAmqpLib\Message\AMQPMessage;//$config = array(// 'host' => '127.0.0.1',// 'vhost' => '/',// 'port' => 5672,// 'login' => 'guest',// 'password' => 'guest'//);try {//创建一个连接$connection = new AMQPStreamConnection('127.0.0.1', '5672', 'guest', 'guest', '/'); // 建立连接到RabbitMQ服务器//建立通道$channel = $connection->channel();//声明需要存储消息的队列,已经存在,可以不用声明// $channel->queue_declare('list_set_1', false, false, false, false);//指定要发送的消息内容 hello world$msg = new AMQPMessage('第四个');//将消息内容发动到指定的 队列,如果这里找不到对应的队列,那么消息是无法到达消费者那里的,此时我们使用的是默认交换类型$channel->basic_publish($msg, '', 'list_set_1');// 关闭通道$channel->close();// 关闭连接$connection->close();echo '发送成功';} catch (Exception $e) {die($e->getMessage());}
消费者 receive.php
<?php
//引入类库
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
//$config = array(
//    'host' => '127.0.0.1',
//    'vhost' => '/',
//    'port' => 5672,
//    'login' => 'guest',
//    'password' => 'guest'
//);
//创建一个连接
$connection = new AMQPStreamConnection('127.0.0.1', '5672', 'guest', 'guest', '/'); // 建立连接到RabbitMQ服务器
//建立通道
$channel = $connection->channel();
//声明需要存储消息的队列,已经存在,可以不用声明
$channel->queue_declare('list_set_1', false, false, false, false);
/**
 * 只有生产才会有消费。但是有可能我们会在生产者之前去启动消费者,所以我们要确保这个消费队列存在,才会尝试从中消费消息
 * 我们将告诉 rabbitmq 服务器,如果队列存在且有消息,要将队列中的消息传递给我们
 * 我们将定一个 callback 回调函数,它将接受服务器发送的消息
 * 请记住,消息是从服务器异步发送给客户端的
 * @param $msg
 */
$callback = function ($msg) {
    echo ' 队列信息: ', $msg->body, "\n";
};
//消费消息
$channel->basic_consume('list_set_1', '', false, true, false, false, $callback);
// 当 $channel 有回调时,我们的代码会被阻塞,每当我们收到一条消息,我们的 $callback 函数都会传递给我们生产者发送的消息
while ($channel->is_open()) {
    $channel->wait();
}
// 关闭通道和连接
//$channel->close();
//$connection->close();
                    