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

文檔目錄:


 

1) 客戶端鏈接

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 的含義:服務器

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

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); 

2)斷開鏈接

public bool ConnectIoTClose() 

斷開鏈接,會完全釋放 AliIoTClientJson 對象,而不單單是離線,如需從新鏈接,請從新 new 一個對象;阿里雲

示例:spa

client.ConnectIoT(topics,null,60); 

3) 查看狀態

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

public bool isConnected { get; } 

示例:

Console.WriteLine("是否與服務器鏈接保持鏈接:" + client.isConnected);
相關文章
相關標籤/搜索