как отправить сообщение с rabbitMQ на устройство iot hub? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь отправить сообщение от rabbitMQ на устройство-концентратор IoT с именем dvc-test с помощью php, я сослался на официальную документацию и попробовал код 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 credientials, у меня это не сработало.

, пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вы можете найти пример здесь , как отправлять сообщения с низким уровнем AMQP.Для аутентификации вам нужно сгенерировать токен SAS на основе ключа вашего устройства.

0 голосов
/ 28 февраля 2019

Пожалуйста, проверьте логи rabbitmq, если вы видите какие-либо соединения с вашего ip.Если в журнале ничего нет, то, возможно, какой-то брандмауэр блокирует соединение amqp.

Кстати, я предполагаю, что вы отправляете сообщения в rabbimq, а не из.

...