0

我正在从我的C#应用程序发送消息以IOT Hub使用下面的代码片段。

    public async Task<MessageToTargetStatus> ForwardMessage(byte[] message)
    {
        var messageToSend = new Microsoft.Azure.Devices.Client.Message(message);            
        await iotHubClient.GetDeviceClient().SendEventAsync(messageToSend).ConfigureAwait(false);
        return MessageToTargetStatus.Success;
    }

消息被成功接收Azure IOT Hub

现在我想测试这些消息的安全性并尝试在 WireShark 中验证这些消息。

我在 中看到了许多记录WireShark,但我无法弄清楚哪些是我发送到 IOT Hub 的消息。

我该怎么做?我MQTT在端口 1833 上使用,作为“Windows 服务”运行。

我添加了如下过滤器,但没有运气

在此处输入图像描述

MQTT 我可能需要通过网络适配器强制数据包,使用本地主机窗口将使用环回而不是网络接口卡。那么我该如何在 WireShark 中做到这一点呢?

使用设备资源管理器工具屏幕截图更新问题

当我从 中发送单个消息时Device Explorer,我在 中看到许多通信记录WireShark。我应该过滤哪个协议?

在此处输入图像描述

连接字符串- 我正在使用Mqtt_WebSocket_Only

  _hubClient = DeviceClient.CreateFromConnectionString(IotHubConnectionString, TransportType.Mqtt_WebSocket_Only);
4

1 回答 1

1

Azure IoT Hub 仅支持安全通信,对于 MQTT 协议,它使用 8883 端口号。因此,您需要将捕获过滤器更改为tcp.port == 8883.

参考:Azure IoT Hub 通信协议和端口

或者使用以下命令查找 Azure IoT 中心 IP 地址:

ping [your-hub-name].azure-devices.net

然后使用这个过滤器:

ip.addr == [iothub-address]

如果你使用 AMQP,它的端口是 5671。你可以像这样在 Wireshark 中设置过滤器:

在此处输入图像描述

于 2018-06-29T01:34:23.993 回答