一,什么是服务端订阅
服务端可以直接订阅产品下配置的所有类型的消息。
目前,新版物联网平台通过HTTP/2通道进行消息流转。配置HTTP/2服务端订阅后,物联网平台会将消息通过HTTP/2通道推送至服务端。通过接入HTTP/2 SDK,企业服务器可以直接从物联网平台接收消息。HTTP/2 SDK提供身份认证、Topic订阅、消息发送和消息接收能力,并支持设备接入和云端接入能力。HTTP/2 SDK适用于物联网平台与企业服务器之间的大量消息流转,也支持设备与物联网平台之间的消息收发。
注:旧版物联网平台用户使用阿里云消息服务(MNS)进行消息流转,您可以将服务端订阅方式升级为HTTP/2方式。如果您继续使用在MNS这种方式,物联网平台将设备消息推送至MNS,服务端应用通过监听MNS队列接收设备消息。
二,开发指南(.NET)
介绍如何配置服务端订阅、接入HTTP/2 .NET版SDK、进行身份认证和设置消息接收接口。以下简单介绍服务端订阅的开发流程。有关SDK配置的具体信息,请参考Demo。
1,配置服务端订阅
- 登录物联网平台控制台。
- 左侧导航栏选择设备管理 > 产品。
- 在产品列表中,搜索到要配置服务端订阅的产品,并单击该产品对应的查看按钮,进入产品详情页。
- 单击服务端订阅 > 设置。
- 选择推送的消息类型。
- 设备上报消息:指产品下所有设备 Topic 列表中,具有发布权限的 Topic 中的消息。勾选后,可以通过 HTTP/2 SDK 接收这些消息。
- 设备状态变化通知:指一旦该产品下的设备状态变化时通知的消息,例如设备上线、下线的消息。设备状态消息的发送 Topic 为
/as/mqtt/status/${YourProductKey}/${YourDeviceName}
。勾选后,可以通过 HTTP/2 SDK 接收设备状态变化的通知消息。
2,接入 SDK
在工程中添加依赖包 iotx-as-http2-net-sdk.dll。
3,身份认证
使用服务端订阅功能,需要基于您的阿里云 AccessKey 进行身份认证并建立连接。
建立链接示例如下:
//阿里云accessKey:即您的账号的 AccessKey ID
string accessKey = "xxxxxxxxxxxxxxx";
//阿里云accessSecret:即 AccessKey ID对应的 AccessKey Secret
string accessSecret = "xxxxxxxxxxxxxxx";
//regionId:为您的物联网平台服务地域
string regionId = "cn-shanghai";
//阿里云uid:您的账号 ID
string uid = "xxxxxxxxxxxxxxx";
//domain
string domain = ".aliyuncs.com";
//endpoint
string endpoint = "https://" + uid + ".iot-as-http2." + regionId + domain;
//连接参数配置
Profile profile = new Profile();
profile.AccessKey = accessKey;
profile.AccessSecret = accessSecret;
profile.RegionId = regionId;
profile.Domain