一、安装依赖
可以直接在composer.json文件中添加,然后执行composer update,也可以在命令行中执行composer require
"php-amqplib/php-amqplib": ">=2.6.1",
二、核心代码:
$exchange = 'direct'; // 交换器
$queue = 'queue'; // 队列名称
$connection = new AMQPStreamConnection('xxx.xxx.xxx.xxx', 5672, 'msg', 'password','/msg');
$channel = $connection->channel();
$channel->queue_declare($queue, false, false, false, false);
$channel->exchange_declare($exchange, 'direct', false, true, false);
$channel->queue_bind($queue, $exchange);
$msg = new AMQPMessage($messageBody, array('content_type' => 'application/json', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT));
$channel->basic_publish($msg, $exchange);
$channel->close();
$connection->close();
三、在实际工程中使用
(在新增一条数据之前向RabbitMQ队列中发送消息,发送消息的内容即是新增信息的具体内容)
public function store(Request $request)
{
$data = $request->json()->all();
$msg=Message::create($data);
$ret=new RetObject();
$ret->retCode='0000';
$ret->retMsg='Success';
$ret->data=$notify;
$messageBody = response()->json($ret);
$exchange = 'direct'; // 交换器
$queue = 'queue'; // 队列名称
$connection = new AMQPStreamConnection('xxx.xxx.xxx.xxx', 5672, 'msg', 'password','/msg');
$channel = $connection->channel();
$channel->queue_declare($queue, false, false, false, false);
$channel->exchange_declare($exchange, 'direct', false, true, false);
$channel->queue_bind($queue, $exchange);
$msg = new AMQPMessage($messageBody, array('content_type' => 'application/json', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT));
$channel->basic_publish($msg, $exchange);
$channel->close();
$connection->close();
return response()->json($ret);
}