
一、生产者消息推送到消息队列
<?php
$v_host = 'order';
$queue_name = 'goods';//队列名
//地址 端口 用户名 密码 vhost
$connection = new AMQPStreamConnection('localhost',5672,'rabbitmq','rabbitmq,$v_host);
//新建通道
$channel = $connection->channel();
//声明队列 参数:队列名、不存在则自动创建、持久化、通道关闭后不自动删除队列
$channel->queue_declare($queue_name,false,true,false);
//消息 参数:持久化
$data = 'this is message';
$msg = new AMQPMessage($data,[
'delivery_mode'=>AMQPMessage::DELIVERY_MODE_PERSISTENT
]);
//将消息推送到队列里
$channel->basic_publish($msg,'',$queue_name);
//关闭通道
$channel->close();
?>

二、消费者接收消息
$v_host = 'order';
$queue_name = 'goods';//队列名
//地址 端口 用户名 密码 vhost
$connection = new AMQPStreamConnection('localhost',5672,'rabbitmq','rabbitmq,$v_host);
//新建通道
$channel = $connection->channel();
//声明队列 参数:队列名、不存在则自动创建、持久化、通道关闭后不自动删除队列
$channel->queue_declare($queue_name,false,true,false);
$callback = function($msg){
echo 'received'.$msg->body.'\n';
}
//取出消息 进行消费
$channel->basic_consume($queue_name,'',false,true,false,false,callback);
while($channel->is_open){
$channel->waite();
}
$channel->close();
$connection->close();
