publishCommand、ApplicationClient 后出现 SocketException
SocketException after publishCommand, ApplicationClient
我在 IBM Watson IoT Platform 中创建了一个应用程序,并使用提供的代码示例连接了一个 ApplicationCLient 对象。
连接很好,但是当发送发布命令时,一两秒钟后我在 VS2017 的输出 window 中得到了这个:
Exception levée : 'System.Net.Sockets.SocketException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Le thread 0x4a4 s'est arrêté avec le code 0 (0x0).
Exception levée : 'System.Security.Cryptography.CryptographicException'
dans mscorlib.dll
问题是,我在任何地方都使用了 try/catch 块,但它们没有捕捉到这些异常。
我猜是关于端口转发的,但即使打开了 watson iot 所需的端口,我似乎也无法使命令正常工作
我可以成功地从设备发布事件并在 ApplicationClient 上接收这些事件,我只有命令有问题。
编辑:添加说明
- 我不知道使用了哪个端口 exaclty,它是管理连接的 IBMWIoTP,但文档说要打开 1883、80、8883 和 443。
我在 windows 防火墙和我的路由器中都这样做了。
发布方法如下:
appClient.publishCommand("Raspberry", "Pi2B", "pi", "txt", 数据, 0);
其中 Raspberry 是设备类型; Pi2B 设备 ID,pi 主题,txt 格式,数据是字符串,0 是 QoS。
我正在使用 IBM 推荐的 Nuget 库:IBMWIoTP
- 我尝试在安全性中设置 TLS optionnal,但这并没有解决问题
- 我在 IBMWIoTP 库源代码中的连接方法中找到了未捕获异常的确切时刻:
connevtionState = mqttClient.Connect(clientId, clientUsername, clientPassword,cleanSession,keepAlivePeriod);
断开的连接可能表示您正试图做一些非法的事情,例如发布到您不允许的主题。
好的,我找到了原因……我很惭愧。
我在应用程序上影响了错误的配置文件,我无法使用此配置文件发送命令。
我已经设置了一个标准的应用程序配置文件,现在一切正常。
我在这上面浪费了太多时间...
我在 IBM Watson IoT Platform 中创建了一个应用程序,并使用提供的代码示例连接了一个 ApplicationCLient 对象。
连接很好,但是当发送发布命令时,一两秒钟后我在 VS2017 的输出 window 中得到了这个:
Exception levée : 'System.Net.Sockets.SocketException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Le thread 0x4a4 s'est arrêté avec le code 0 (0x0).
Exception levée : 'System.Security.Cryptography.CryptographicException'
dans mscorlib.dll
问题是,我在任何地方都使用了 try/catch 块,但它们没有捕捉到这些异常。
我猜是关于端口转发的,但即使打开了 watson iot 所需的端口,我似乎也无法使命令正常工作
我可以成功地从设备发布事件并在 ApplicationClient 上接收这些事件,我只有命令有问题。
编辑:添加说明 - 我不知道使用了哪个端口 exaclty,它是管理连接的 IBMWIoTP,但文档说要打开 1883、80、8883 和 443。 我在 windows 防火墙和我的路由器中都这样做了。
发布方法如下:
appClient.publishCommand("Raspberry", "Pi2B", "pi", "txt", 数据, 0); 其中 Raspberry 是设备类型; Pi2B 设备 ID,pi 主题,txt 格式,数据是字符串,0 是 QoS。
我正在使用 IBM 推荐的 Nuget 库:IBMWIoTP
- 我尝试在安全性中设置 TLS optionnal,但这并没有解决问题
- 我在 IBMWIoTP 库源代码中的连接方法中找到了未捕获异常的确切时刻:
connevtionState = mqttClient.Connect(clientId, clientUsername, clientPassword,cleanSession,keepAlivePeriod);
断开的连接可能表示您正试图做一些非法的事情,例如发布到您不允许的主题。
好的,我找到了原因……我很惭愧。 我在应用程序上影响了错误的配置文件,我无法使用此配置文件发送命令。 我已经设置了一个标准的应用程序配置文件,现在一切正常。 我在这上面浪费了太多时间...