阿里云物联网 .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);
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:1. 连接阿里云物联网
1) 阿里云物联网 阿里云物联网支持多种通讯协议,CZGL.AliIoTClient 使用了 MQTT 通讯协议,通讯库为 M2MQTT 。 阿里云物联网数据传输有两种数据传输方式,分别是 透传 和 Alink json,两种方式只在属性读/写、事件上报、服务调用这四种 Topic 上有差异, 其它连接通讯、普通 Topic、响应等,无差别。建议使用 Alink json 方式上传下发数据。 传输形式 本质 说明 Alink json json 需按照阿里云物联网文档配置 json 透传 二进制 在使用属性、事件和服务功能时,数据为二进制,有具体的传输位要求 CZGL.AliIoTClient 支持 Alink json 和 透传,SDK 中有两个客户端类, 类 说明 AliIoTClientJson 以Alink json为传输形式的客户端 AliIoTClientBinary: 以二进制为传输形式的客户端 两者很大程度上是一致的,仅在属性事件服务方面的数据传输形式有差异。因此后面主要以 AliIoTClientJson 来说明。 2) 连接到阿里云IOT 2.1) 创建客户端 在创...
- 下一篇
阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:3. 订阅Topic与响应Topic
CZGL.AliIoTClient 将 Topic 分为五种 分别是:普通Topic、属性上报、属性下发、事件上报、服务调用,除了普通 Topic,每种 Topic 都有消息的发送、响应。 普通 Topic ,消息发送或,根据 MQTT 协议,SDK 严格保证消息能够到达另一端。 设备推送属性、事件等数据到服务器,则服务器要响应, 服务器推送(下发)数据到设备,则设备要响应。 当然,这些响应可有可无,无实质的影响。 每种、每个 Topic 都有特定的 MQTT 通讯地址,这些地址已经在 CZGL.AliIoTClient 中自动生成,你仅需填写普通 Topic 的通讯地址即可。 1) 订阅 Topic 订阅 Topic 前,需要在阿里云物联网定义相应的 Topic 以及设置 订阅 权限, 普通 Topic ,使用 string[] 包含列表,然后在调用连接方法时作为参数传入,亦可在连接服务器后,添加需要的订阅。 普通 Topic 可以动态添加,属于 热订阅 。 使用方法: // 设置要订阅的Topic、运行接收内容的Topic string[] topics = new string[...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池