rabbitmq 在 linux 中发送数据 php

rabbitmq send data php in linux

我尝试将数据发送到 rabbitmq-server,但它一直返回错误:

“遇到了一个PHP错误

严重性:通知

消息:正在尝试获取 属性 的非对象

文件名:Channel/AMQPChannel.php

行号:1098

这是我的代码:

require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

 function send_log($id, $id_user, $object_id){
    $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
    $channel = $connection->channel();
    $channel->queue_declare('hello', false, false, false, false);
    $msg = '';
    if ($id == 24 || $id == 7){
        $msg = new AMQPMessage(json_encode(array('id' => 2, 'id_user' => $id_user, 'id_post' => $object_id)));
    }elseif($id == 6){
        $msg = new AMQPMessage(json_encode(array('id' => 3, 'id_user' => $id_user, 'id_post' => $object_id)));
    }
    $channel->basic_publish($msg, '', 'hello');
    //echo " [x] Sent 'Hello World!'\n";
    $channel->close();
    $connection->close();
}

我不知道为什么它一直返回那个错误。因为在我尝试 windows OS 中的相同代码之前,它很好。现在我正在使用 centos 然后像那样转... 如果您知道问题所在,请帮助我。谢谢

php 脚本不适用于我的服务器。我最好的猜测是我服务器中的 php 版本。所以,我用 python 制作了另一个脚本来将数据发送到兔子服务器。并且有效。