文档目录:


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[] {
client.CombineHeadTopic("get"),
"/a1xrkGSkb5R/mire/user/get1" }; client.ConnectIoT(topics,null,60);

Topic 地址比较长,你可以记录 .../user/ 后的内容,使用 CombineHeadTopic() 可自动生成,

client.CombineHeadTopic("get")

2)响应

当你使用属性、事件、服务功能,对服务器进行数据传输时,服务器会做出响应,你可以选择接收响应,也可以不接收响应。
CZGL.AliIoTClient 默认不接收服务器的响应信息。实际上这些响应信息一般只在调测时需要。

响应方法 说明
OpenEventPostReply() 接收上报事件后服务器的响应
OpenPropertyPostReply() 接收设备属性上传后服务器的响应
OpenServicePostRaw() 允许服务器调用服务 新版本已经取消这个设置
OpenPropertyDownPost() 允许服务器下发设置设备属性指令

注意,这些响应,必须在连接客户端前设置,并且在客户端已经连接后,不能再使用以上方法,否则会弹出异常。
已修复,你可以在程序的任意阶段打开接收功能,任意取消和打开。

查看这些功能是否打开:

public CZGL.AliIoTClient.OpenTopic getOpenTopic()

OpenTopic 具有 8 个属性,用于获取或设置是否打开某种功能的接收。

属性 说明 默认值
CommonTopic 是否接收普通Topic 固定为true,不能更改
PropertyUpRawReplyTopic 设备上传透传属性数据后服务器的响应 false
PropertyPostReplyTopic 设备上传Alink json属性数据后服务器的响应 false
PropertyDownRaw 服务器下发设置属性的命令,透传 false
PropertyDownPost 服务器下发设置属性的命令,Alink json false
EventUpRawReply 设备事件上报,接收服务器的响应,透传 false
EventPostReply 设备事件上报,接收服务器的响应,Alink json false
ServiceDownRaw 服务器调用服务,透传 false
ServicePostRaw 服务器调用服务,Alink json false

由于区分 透传 和 Alink json,若是透传,设置上面的 Alink json 项,是无效的,反之亦然。


3)连接服务器后


在连接服务器后,你还可以增加要订阅的普通 Topic:

public void TopicAdd(string[] topics, [byte[] QOS = null])

示例:

client.TopicAdd(new string[]{ client.CombineHeadTopic("get") })

移除已经订阅的 Topic:

public void TopicRemove(string[] topics)

在连接服务器后,可以取消接收服务器的响应信息,但是不能再重新接收。

方法 说明
CloseEventPostReply() 不再接收设备上传事件后服务器的响应
ClosePropertyPostReply() 不再接收设备上传属性后服务器的响应
CloseServicePostRaw() 不允许服务器下发调用设备服务的指令已删除此设置
ClosePropertyDownPost() 不允许服务器下发设置设备属性的指令

你可以在客户端连接服务器后,取消接收响应。但是,取消后,不能再订阅!
已修复,你可以在程序任意阶段取消后再打开接收。


4) Topic 说明

获取已经订阅的Topic列表:

public string[] GetSubedList { get; }

示例:

var topicList = client.GetSubedList;

服务器设置设备属性、调用服务等功能,由于采用 MQTT 通讯,是订阅/推送形式的,所以,无论什么功能的数据传输,本质还是Topic。 因此,那些设备属性上报、设置设备属性等,可以配置 Topic 属性。

CZGL.AliIoTClient 中,客户端可以订阅需要的 Topic,连接服务器后,服务器可以向所有 Topic 发送数据,但只有客户端指定订阅的 Topic,客户端才会接收到推送,不然无论在控制台怎么点击发送,客户端都是不会接收到的。

有个地方需要注意的是,对于普通Topic,是随客户端连接时的配置,决定服务器是否能够推送消息到客户端,动态的。

而属性、事件、服务这些功能,会保存上一次的配置。当你打开

client.OpenPropertyPostReply();

接收属性上传到服务器的响应后,在程序删除

client.OpenPropertyPostReply();

再次运行,依然会接收到响应,除非设置

client.ClosePropertyPostReply();

设备上传数据到服务器,服务器会做出响应,当然,服务器设置设备属性、调用设备服务时,客户端也可以做出响应。将在后面的章节讲述。

阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:3. 订阅Topic与响应Topic的更多相关文章

  1. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:1. 连接阿里云物联网

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  2. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:7. 服务调用

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  3. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:2. IoT 客户端

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  4. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4. 设备上报属性

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  5. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:5. 设置设备属性

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  6. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:6. 设备事件上报

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  7. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:8. 委托事件

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  8. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:9. 自定义委托事件方法

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  9. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4.1 上报位置信息

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

随机推荐

  1. shapes

    接口 shape package shape; public abstract interface shape { public abstract void Draw(); public abstra ...

  2. Photoshop颜色通道实例

    PHOTOSHOP学到这会儿,我们不得不来学学枯燥乏味的颜色理论了,因为如果再不学,就难以学下去了.眼下我们就遇到了难点:颜色通道.前面在初识通道的时候,我已经说过:当你打开一张照片(RGB模式)的时 ...

  3. 关于VLOOKUP函数的用法

    “Lookup”的汉语意思是“查找”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP.HLOOKUO和LOOKUP.下面介绍VLOOKUP函数的用法. 一.功能 在表格的首列查找指定 ...

  4. codeforces 466A. Cheap Travel 解题报告

    题目链接:http://codeforces.com/problemset/problem/466/A 题目意思:一个 ride 需要 a 卢布,m 个 ride 需要 b 卢布,这两种方案都可以无限 ...

  5. html5--3.9 input元素(8)

    html5--3.9 input元素(8) 学习要点 input元素及其属性 input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等 不仅可以布置在表单中,也可以在表单之外的元素使用 i ...

  6. python学习笔记:第二天(基本数据类型)

    Python3 基本数据类型 1.标准数据类型 Python3中有六个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictio ...

  7. BZOJ-2257:瓶子和燃料(裴蜀定理)

    jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy的飞船上共有 N个瓶子(1<=N<=1000) ,经过 ...

  8. AutoIT:界面与自动化操作结合来简化日常劳动: .Net Reactor验证License,设置License,创建License,截图AutoIt自动化实现。(七)

    版本六中存在一个显著问题是: 当exe文件生存之后,运行的时候,通过consoleWrite函数打印出来的数据是无法展示出来的.这就存在一个问题:当运行失败的时候,我还是看不到任何log信息. 于是, ...

  9. kitti 数据集解析

    1.KITTI数据集采集平台: KITTI数据采集平台包括2个灰度摄像机,2个彩色摄像机,一个Velodyne 3D激光雷达,4个光学镜头,以及1个GPS导航系统.坐标系转换原理参见click.KIT ...

  10. bzoj2718

    二分图匹配 首先有个定理:最长反链=最小链覆盖 最小链覆盖可以重复经过点 所以我们不能直接建图 那么我们用floyd判断是否相连 然后建图就行了 #include<bits/stdc++.h&g ...