如何从rabbitMQ向物联网集线器设备发送消息?

时间:2019-02-28 10:41:11

标签: php azure rabbitmq azure-iot-hub

我正在尝试使用php从RabbitMQ向名为dvc-test的IoT中心设备发送消息,我推荐了官方documentation并尝试了send.php代码,如下所示:

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

$host = '[MYHUBNAME].azure-devices.net';
$userName = 'XXXXXXXX'; //confused which iot hub crediential should comes device or iothub
$password = 'XXXXXXXX'; //confused which iot hub crediential should comes device or iothub
$connection = new AMQPStreamConnection($host, 5672, $userName, $password);
$channel = $connection->channel();

$channel->queue_declare('hello', false, false, false, false);
$json = '{"id":1, "value":"test"}';
$msg = new AMQPMessage($json);
$channel->basic_publish($msg, '', 'hello');

echo " [x] Sent ";

$channel->close();
$connection->close();

它适用于本地主机,并具有文档中给出的默认给定参数,但是,如果我尝试使用iot hub凭证,则对我不起作用。

请帮助

2 个答案:

答案 0 :(得分:0)

如果您看到来自IP的任何连接,请检查Rabbitmq日志。 如果日志中没有任何内容,则可能是某些防火墙阻止了amqp连接。

顺便说一句,我假设您是向rabbimq发送消息,而不是从。

答案 1 :(得分:0)

您可以找到一个示例here,该示例介绍了如何使用低级AMQP发送消息。对于身份验证,您需要根据设备密钥生成SAS令牌。