我正在使用以下代码段将消息从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的消息是什么。
我该怎么办?我在端口1833上使用MQTT
,作为“ Windows服务”运行。
我添加了以下过滤器,但没有运气
MQTT我可能需要通过网络适配器强制发送数据包,使用localhost的Windows将使用环回而不是网络接口卡。那么如何在WireShark中做到这一点?
使用设备资源管理器工具屏幕截图更新的问题
当我从Device Explorer
发送单个消息时,我在WireShark
中看到许多通信记录。我应该过滤哪个协议?
连接字符串-我正在使用Mqtt_WebSocket_Only
_hubClient = DeviceClient.CreateFromConnectionString(IotHubConnectionString, TransportType.Mqtt_WebSocket_Only);
答案 0 :(得分:1)
Azure IoT中心仅支持安全通信,对于MQTT协议,它使用8883端口号。
因此,您需要将更改捕获过滤器更改为tcp.port == 8883
。
参考:Azure IoT Hub communication protocol and ports
或使用以下命令找到Azure IoT中心IP地址:
ping [your-hub-name].azure-devices.net
然后使用此过滤器:
ip.addr == [iothub-address]
如果使用AMQP,则其端口为5671。可以在Wireshark中设置过滤器,如下所示: