public class GatewayChannel extends java.lang.Object implements IGatewayChannel
构造器和说明 |
---|
GatewayChannel() |
限定符和类型 | 方法和说明 |
---|---|
void |
addSubDevice(SubDeviceInfo deviceInfo,
ISubDeviceConnectListener subDeviceConnectListener)
建立 topo 关系
|
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。
|
GatewayConnectState |
getGatewayConnectState()
获取当前长连接通道状态
|
static IGatewayChannel |
getInstance() |
void |
registerDownstreamListener(boolean uiSafey,
IGatewayDownstreamListener listener)
设置通道的下推回调,如果不需要用的时候,unRegisterDownstreamListener
|
void |
removeSubDevice(SubDeviceInfo subDeviceInfo,
ISubDeviceRemoveListener removeListener)
删除 topo 关系
|
void |
startConnect(android.content.Context context,
GatewayConnectConfig config,
IGatewayConnectListener listener)
长连接通道启动接口,应用起来时调用一次
|
void |
subscribe(java.lang.String topic,
com.aliyun.alink.linksdk.channel.gateway.api.IGatewaySubscribeListener listener)
app订阅topic的接口
|
void |
unRegisterDownstreamListener(IGatewayDownstreamListener listener)
取消某个通道的下推回调
|
void |
unSubscribe(java.lang.String topic,
com.aliyun.alink.linksdk.channel.gateway.api.IGatewaySubscribeListener listener)
app取消订阅topic的接口
|
public static IGatewayChannel getInstance()
public void startConnect(android.content.Context context, GatewayConnectConfig config, IGatewayConnectListener listener)
IGatewayChannel
startConnect
在接口中 IGatewayChannel
config
- app身份鉴权配置项listener
- 反馈通道状态变化public GatewayConnectState getGatewayConnectState()
IGatewayChannel
getGatewayConnectState
在接口中 IGatewayChannel
public void addSubDevice(SubDeviceInfo deviceInfo, ISubDeviceConnectListener subDeviceConnectListener)
IGatewayChannel
addSubDevice
在接口中 IGatewayChannel
public void removeSubDevice(SubDeviceInfo subDeviceInfo, ISubDeviceRemoveListener removeListener)
IGatewayChannel
removeSubDevice
在接口中 IGatewayChannel
public 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)
IGatewayChannel
asyncSendRequest
在接口中 IGatewayChannel
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
- 业务服务器响应回调接口public 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)
IGatewayChannel
ayncSendPublishRequest
在接口中 IGatewayChannel
topic
- rpc请求的topic,由具体业务确定,上行的完整topic形如:
/sys/${productKey}/${deviceName}/app/up/abc/cba
其中App 端 Topic 订阅协议前缀:/sys/${productKey}/${deviceName}/app/up 在sdk中会自动补齐。
所以开发者只需要传完整topic的业务部分,如上例中的/abc/cba即可。
也可以使用通配符 如/abc/#.public void subscribe(java.lang.String topic, com.aliyun.alink.linksdk.channel.gateway.api.IGatewaySubscribeListener listener)
IGatewayChannel
subscribe
在接口中 IGatewayChannel
topic
- 订阅的消息的topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传.
可以参见invokeWithTopic:opts:params:respHandler: 中的topic定义listener
- 订阅流程结束的监听public void unSubscribe(java.lang.String topic, com.aliyun.alink.linksdk.channel.gateway.api.IGatewaySubscribeListener listener)
IGatewayChannel
unSubscribe
在接口中 IGatewayChannel
topic
- 订阅的消息的topic,由具体业务确定,只需要传业务方的区段,公用区段不需要传.
可以参见asyncSendRequest 中的topic定义listener
- 订阅流程结束的监听public void registerDownstreamListener(boolean uiSafey, IGatewayDownstreamListener listener)
IGatewayChannel
registerDownstreamListener
在接口中 IGatewayChannel
uiSafey
- 是否要在UI线程里回调,建议为YESpublic void unRegisterDownstreamListener(IGatewayDownstreamListener listener)
IGatewayChannel
unRegisterDownstreamListener
在接口中 IGatewayChannel