2017-08-31 136 views
0

我在WinCE 2013上工作,並希望使用帶SSL/TLS的mqtt協議。但似乎在.Net CF3.9中不支持SSL StreamCLass。任何人都可以讓我知道,無論如何SSL/TLS可以在.NCF3.9中進行通信。我想使用SSL流類和.Net Compact Framework中的SSL SSlstream支持

using System.Net.Security; 
using System.Security.Authentication; 

但不可能做這樣......

回答

0

爲了在M2Mqtt上啓用SSL/TLS,您需要定義SSL符號。例如,如果你看到的淨MF 4.3項目文件(https://github.com/eclipse/paho.mqtt.m2mqtt/blob/master/M2Mqtt/M2Mqtt.NetMf43.csproj)有本節:

<DefineConstants>DEBUG;TRACE,MF_FRAMEWORK_VERSION_V4_3,SSL</DefineConstants>

正如你可以看到有是SSL的象徵。它支持SSL構建。

+0

謝謝先生您的回覆,但我想在.NETCF 3.9/3.5上做。我做了你提到的,但編譯它給我錯誤說:使用System.Net.Security; 使用System.Security.Authentication;導致錯誤說上述命名空間缺少引用程序集。我也必須在dll文件中編輯它或在應用程序中引用dll之後。是否有編輯定義常量的順序? –

+0

你說得對,我剛剛檢查過。該庫不支持使用.Net CF 3.5/3.9的SSL/TLS。我爲AMQP .Net Lite庫(https://github.com/Azure/amqpnetlite/tree/master/src/NetCF39)添加了此支持,但不支持M2Mqtt。 – ppatierno

+0

先生,有一種方法可以在.NETCF3.5上使用m2mqtt來完成它。在GitHub上,這個問題被提出來了,一位工程師使用Paho C庫來完成它。他建立了原生的dll並使用openssl dll將它導入到.NETCF3.5中。但我不知道如何繼續這個。所以,如果你能幫助我,請讓我知道.. –

0

看一看: https://m2mqtt.wordpress.com/ 這是一個MQTT實施準備使用,如果它不滿足您的需求,至少可以看看如何在.NET CF中實現SSL。

+0

我一直在使用相同的庫,但一直在獲取有關SSL/TLS啓用的錯誤。當我搜索了更多關於它的信息時,我已經意識到使用這個庫的mqtt協議實現是可能的,但不能通過SSL。但是有一種方法可以通過使用Paho C庫dll和Openssl dll並在.netCF中導入並且然後建設方案。還沒有能夠這樣做..如果你可以建議如何繼續請讓我知道。謝謝。 –

+0

你會得到什麼錯誤?我記得在CF 3.5上測試過了。 –

+0

關於M2MQTT庫的錯誤我得到:「沒有SSL支持的庫編譯」這是當我嘗試使用需要SSL/TLS支持的CF3.5/CF3.9連接到azure時。但是,當我在1883端口上使用SSL進行測試時,無法通過代理服務器進行測試,因此無法連接。所以確實需要啓用SSL,但我不知道如何。如果你在談論第二種方法,那麼我沒有取得任何進展。我不知道如何。如果你已經完成了使用任何一種方法,請讓我知道.. –