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