public interface IGatewayChannel
Modifier and Type | Method and Description |
---|---|
void |
addSubDevice(SubDeviceInfo deviceInfo,
ISubDeviceConnectListener subDeviceConnectListener)
建立 topo 关系
|
void |
addSubDeviceForILopGlobal(SubDeviceInfo deviceInfo,
ISubDeviceConnectListener subDeviceConnectListener)
注意:该接口只支持在飞燕(生活物联网平台)使用,不支持 LP(阿里云物联网平台)使用,LP平台请使用
addSubDevice(SubDeviceInfo, ISubDeviceConnectListener) 接口
iLop 飞燕全球版本添加拓扑关系接口,该接口和 addSubDevice(SubDeviceInfo, ISubDeviceConnectListener) 功能类似且互斥,不支持两个接口混用
该接口不需要子设备的deviceSecret做sign值计算,所以也不需要再使用上面的子设备动态注册 subDeviceRegister(List, IConnectSendListener) 的接口了 |
void |
asyncSendRequest(java.lang.String topic,
java.lang.String method,
java.util.Map<java.lang.String,java.lang.Object> opts,
java.lang.Object params,
IGatewayRequestListener listener)
RPC请求接口,封装了业务的上行request以及下行resp。
|
void |
ayncSendPublishRequest(java.lang.String topic,
java.lang.String method,
java.util.Map<java.lang.String,java.lang.Object> opts,
java.lang.Object params,
IGatewayRequestListener listener)
发布消息接口,不同于asyncSendRequest。这个接口不会有业务回执。
|
void |
destroyConnect()
断开长链接通道
|
void |
deviceListUpload(java.util.List<SubDeviceInfo> foundList,
IConnectSendListener listener)
上报发现的子设备列表
可能用于第三方应用获取并选择添加拓扑关系
|
GatewayConnectState |
getGatewayConnectState()
获取当前长连接通道状态
|
PersistentConnectConfig |
getPersistentConnectConfig() |
ISubDeviceChannel |
getSubDeviceChannel(java.lang.String sudDeviceId)
获取子设备连接通道
|
void |
getSubDevices(IConnectSendListener listener)
获取子设备列表
|
void |
registerDownstreamListener(boolean uiSafey,
IGatewayDownstreamListener listener)
设置通道的下推回调,如果不需要用的时候,unRegisterDownstreamListener
|
void |
removeSubDevice(SubDeviceInfo subDeviceInfo,
ISubDeviceRemoveListener removeListener)
删除 topo 关系
|
void |
startConnect(Context context,
PersistentConnectConfig config,
IGatewayConnectListener listener)
长连接通道启动接口,应用起来时调用一次
|
void |
startConnectReuseMobileChannel(Context context,
IGatewayConnectListener listener)
长连接通道启动借口给,复用Mobile Channel接口
|
void |
subDeviceRegister(ARequest requestData,
IConnectSendListener listener)
子设备动态注册通用接口,上报数据由用户封装,topic如果为空则默认使用 /sys/pk/dn/thing/proxy/provisioning/product_register
当前version 使用 1.0
|
void |
subDeviceRegister(java.util.List<SubDeviceInfo> infoList,
IConnectSendListener listener)
子设备动态注册
|
void |
subDevicUnregister(java.util.List<SubDeviceInfo> infoList,
IConnectSendListener listener)
Deprecated.
|
void |
subscribe(java.lang.String topic,
IGatewaySubscribeListener listener)
app订阅topic的接口
|
void |
unRegisterDownstreamListener(IGatewayDownstreamListener listener)
取消某个通道的下推回调
|
void |
unSubscribe(java.lang.String topic,
IGatewaySubscribeListener listener)
app取消订阅topic的接口
|
void startConnect(Context context, PersistentConnectConfig config, IGatewayConnectListener listener)
context
- config
- 通道建联配置项listener
- 反馈通道状态变化void startConnectReuseMobileChannel(Context context, IGatewayConnectListener listener)
context
- listener
- 反馈通道状态变化GatewayConnectState getGatewayConnectState()
void subDeviceRegister(java.util.List<SubDeviceInfo> infoList, IConnectSendListener listener)
infoList
- 子设备列表listener
- 监听器void subDeviceRegister(ARequest requestData, IConnectSendListener listener)
requestData
- 需要动态注册的列表数据listener
- 监听器@Deprecated void subDevicUnregister(java.util.List<SubDeviceInfo> infoList, IConnectSendListener listener)
infoList
- 子设备列表listener
- 监听器void addSubDevice(SubDeviceInfo deviceInfo, ISubDeviceConnectListener subDeviceConnectListener)
deviceInfo
- 子设备信息subDeviceConnectListener
- 子设备上下行数据通道void addSubDeviceForILopGlobal(SubDeviceInfo deviceInfo, ISubDeviceConnectListener subDeviceConnectListener)
addSubDevice(SubDeviceInfo, ISubDeviceConnectListener)
接口
iLop 飞燕全球版本添加拓扑关系接口,该接口和 addSubDevice(SubDeviceInfo, ISubDeviceConnectListener)
功能类似且互斥,不支持两个接口混用
该接口不需要子设备的deviceSecret做sign值计算,所以也不需要再使用上面的子设备动态注册 subDeviceRegister(List, IConnectSendListener)
的接口了deviceInfo
- 子设备信息subDeviceConnectListener
- 监听器void removeSubDevice(SubDeviceInfo subDeviceInfo, ISubDeviceRemoveListener removeListener)
subDeviceInfo
- 子设备信息void getSubDevices(IConnectSendListener listener)
listener
- 监听器void deviceListUpload(java.util.List<SubDeviceInfo> foundList, IConnectSendListener listener)
foundList
- 子设备列表listener
- 监听器void asyncSendRequest(java.lang.String topic, java.lang.String method, java.util.Map<java.lang.String,java.lang.Object> opts, java.lang.Object params, IGatewayRequestListener listener)
topic
- topic rpc请求的topic,由具体业务确定,完整topic形如:
/sys/${productKey}/${deviceName}/app/abc/cba
其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/
所以开发者只需要传完整topic的业务部分,如上例中的abc/cba即可。
也可以使用通配符 如abc/#.method
- payload 中的methodopts
- 可选配置项,可空,预留params
- 业务参数。listener
- 业务服务器响应回调接口void ayncSendPublishRequest(java.lang.String topic, java.lang.String method, java.util.Map<java.lang.String,java.lang.Object> opts, java.lang.Object params, IGatewayRequestListener listener)
topic
- rpc请求的topic,由具体业务确定,上行的完整topic形如:
/sys/${productKey}/${deviceName}/app/up/abc/cba
其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/up 在sdk中会自动补齐。
所以开发者只需要传完整topic的业务部分,如上例中的/abc/cba即可。
也可以使用通配符 如/abc/#.params
- listener
- void subscribe(java.lang.String topic, IGatewaySubscribeListener listener)
topic
- 订阅的消息的topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传.
可以参见invokeWithTopic:opts:params:respHandler: 中的topic定义listener
- 订阅流程结束的监听void unSubscribe(java.lang.String topic, IGatewaySubscribeListener listener)
topic
- 订阅的消息的topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传.
可以参见asyncSendRequest 中的topic定义listener
- 订阅流程结束的监听void registerDownstreamListener(boolean uiSafey, IGatewayDownstreamListener listener)
uiSafey
- 是否要在UI线程里回调,建议为YESlistener
- void unRegisterDownstreamListener(IGatewayDownstreamListener listener)
listener
- ISubDeviceChannel getSubDeviceChannel(java.lang.String sudDeviceId)
sudDeviceId
- 子设备ID pk+dnvoid destroyConnect()
PersistentConnectConfig getPersistentConnectConfig()