public function index()
{
$connect = new AMQPStreamConnection('39.105.106.191',5672,'guest','guest');
$channel = $connect->channel();
$channel->queue_declare('test', false,false,false,false);
# 消息
$msg = new AMQPMessage('test'.time(),[
'content_type' => 'text/plain',
'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT
]);
$channel->confirm_select(); // 发布确认模式
//推送成功
$channel->set_ack_handler(
function (AMQPMessage $message) {
echo "发送成功: " . $message->body . PHP_EOL;
}
);
//推送失败
$channel->set_nack_handler(
function (AMQPMessage $message) {
echo "发送失败: " . $message->body . PHP_EOL;
}
);
# 发送
$channel->basic_publish($msg);
$channel->wait_for_pending_acks();
$channel->close();
$connect->close();
}
发送后在rabbitmq中没有显示
修改了几次 , 发现原来我在发送数据时 , 没有添加routingkey
修改后:
public function index()
{
$connect = new AMQPStreamConnection('39.105.106.191',5672,'guest','guest');
$channel = $connect->channel();
$channel->queue_declare('test', false,false,false,false);
# 消息
$msg = new AMQPMessage('test'.time(),[
'content_type' => 'text/plain',
'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT
]);
$channel->confirm_select(); // 发布确认模式
//推送成功
$channel->set_ack_handler(
function (AMQPMessage $message) {
echo "发送成功: " . $message->body . PHP_EOL;
}
);
//推送失败
$channel->set_nack_handler(
function (AMQPMessage $message) {
echo "发送失败: " . $message->body . PHP_EOL;
}
);
# 发送
$channel->basic_publish($msg,'','test'); //这里没有添加routing_key
$channel->wait_for_pending_acks();
$channel->close();
$connect->close();
return ['code'=>0 ,"msg"=>"发送成功"];
}
就这么一点小问题 , 找了一个小时 , 引以为戒啊