阿里雲物聯網 .NET Core 客戶端 | CZGL.AliIoTClient:2. IoT 客戶端

1) 客戶端連接

CZGL.AliIoTClient 中,有兩個連接到阿里雲物聯網服務器的方法:

public CZGL.AliIoTClient.ConnectCode ConnectIoT(string[] SubTopic, 
                                                [byte[] QOS = null], 
                                                [ushort keepAlivePeriod = 60])
public System.Threading.Tasks.Task<CZGL.AliIoTClient.ConnectCode> 
                                   ConnectIoTAsync(string[] topics, 
                                   [byte[] QOS = null], 
                                   [ushort keepAlivePeriod = 60])

參數說明及返回值:

參數名稱 類型 說明
SubTopic string[] 要訂閱的 Topic 列表,只有先訂閱這個 Topic ,纔會接收到服務器推送這個 Topic
QOS byte[] 每個Topic都配置一個QOS,如果爲空,將會爲每個Topic設置 QOS=0x00,注意QOS只有0,1,2三種,因此使用byte最合適
keepAlivePeriod ushort 存活監測週期,MQTT 通訊要求每間隔一段時間,客戶端及時反饋,以此證明客戶端的存活,超過這個週期,服務器會認爲客戶端已經掉線。
返回值 ConnectCode 是連接返回狀態的代碼,枚舉類型,即使因爲密鑰錯誤、網絡斷開等造成連接失敗,不會觸發異常,會返回狀態碼

每個 Topic 都有 一個 QOS 屬性,SubTopic 的 長度和 QOS 的長度應當一致,索引位置也要對應。

QOS 的含義:

  • QOS = 0 ,最多一次
  • QOS = 1,至少一次
  • QOS = 2,只有一次

ConnectCode:

當客戶端嘗試與服務器建立連接,可能成功也可能失敗,此時會返回具體的連接狀態信息,ConnectCode 枚舉如下:

枚舉名稱 枚舉值 說明
conn_accepted 0x00 連接成功
conn_refused_prot_vers 0x01 協議版本
conn_refused_ident_rejected 0x02 認證被拒絕
conn_refused_server_unavailable x03 服務器403/404等
conn_refused_username_password 0x04 賬號密碼錯誤
conn_refused_not_authorized 0x05 沒有授權
unknown_error 0x06 其它未知錯誤

示例:

            var code = client.ConnectIoT(topics, null, 60);
            Console.WriteLine("連接狀態:" + code);

2)斷開連接

public bool ConnectIoTClose() 

斷開連接,會徹底釋放 AliIoTClientJson 對象,而不僅僅是離線,如需重新連接,請重新 new 一個對象;

示例:

 client.ConnectIoT(topics,null,60);

3) 查看狀態

查看客戶端是否與服務器保持連接:

public bool isConnected { get; }

示例:

Console.WriteLine("是否與服務器連接保持連接:" + client.isConnected);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章