阿里云物联网 .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);
相关文章
相关标签/搜索