CZGL.AliIoTClient 中,有兩個鏈接到阿里雲物聯網服務器的方法:html
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])
參數說明及返回值:node
參數名稱 | 類型 | 說明 |
---|---|---|
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 的長度應當一致,索引位置也要對應。git
QOS 的含義:服務器
ConnectCode:網絡
當客戶端嘗試與服務器創建鏈接,可能成功也可能失敗,此時會返回具體的鏈接狀態信息,ConnectCode 枚舉以下:ide
枚舉名稱 | 枚舉值 | 說明 |
---|---|---|
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 | 其它未知錯誤 |
示例:ui
var code = client.ConnectIoT(topics, null, 60); Console.WriteLine("鏈接狀態:" + code);
public bool ConnectIoTClose()
斷開鏈接,會完全釋放 AliIoTClientJson 對象,而不單單是離線,如需從新鏈接,請從新 new 一個對象;阿里雲
示例:spa
client.ConnectIoT(topics,null,60);
查看客戶端是否與服務器保持鏈接:code
public bool isConnected { get; }
示例:
Console.WriteLine("是否與服務器鏈接保持鏈接:" + client.isConnected);