我正在尝试使用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凭证,则对我不起作用。
请帮助
答案 0 :(得分:0)
如果您看到来自IP的任何连接,请检查Rabbitmq日志。 如果日志中没有任何内容,则可能是某些防火墙阻止了amqp连接。
顺便说一句,我假设您是向rabbimq发送消息,而不是从。
答案 1 :(得分:0)
您可以找到一个示例here,该示例介绍了如何使用低级AMQP发送消息。对于身份验证,您需要根据设备密钥生成SAS令牌。