簡體   English   中英

publishCommand,ApplicationClient之后的SocketException

[英]SocketException after publishCommand, ApplicationClient

我已經在IBM Watson IoT Platform中創建了一個應用程序,並且使用了提供的代碼示例來連接ApplicationCLient對象。

連接很好,但是當發送發布命令時,一兩秒鍾后,我在VS2017的輸出窗口中得到了這個:

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上接收這些事件,我僅遇到Command問題。

編輯:添加澄清-我不知道使用哪個端口Exaclty,它是管理連接的IBMWIoTP,但是文檔說要打開1883、80、8883和443。在Windows防火牆和我的路由器中我都這樣做了。

  • 像這樣發布方法:

    appClient.publishCommand(“ Raspberry”,“ Pi2B”,“ pi”,“ txt”,data,0); 其中Raspberry是設備類型; Pi2B設備ID,pi主題,txt格式,數據是字符串,0是QoS。

  • 我正在使用IBM的Recommendationend Nuget庫:IBMWIoTP

  • 我試圖在安全性中設置TLS optionnal,但這不能解決問題
  • 我在connect方法上的IBMWIoTP庫源代碼中找到了未捕獲異常的確切時刻:

connevtionState = mqttClient.Connect(clientId,clientUsername,clientPassword,cleanSession,keepAlivePeriod);

連接斷開可能表明您正在嘗試做非法的事情,例如發布到不允許的主題。

好吧,我發現了原因...我感到ham愧。 我影響了應用程序上的錯誤配置文件,我無法使用此配置文件發送命令。 我已經設置了標准的應用程序配置文件,現在一切正常。 我在這個上浪費了太多時間...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM