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