public class CompositeProtocolSupport extends Object implements ProtocolSupport
| 构造器和说明 |
|---|
CompositeProtocolSupport() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addAuthenticator(Transport transport,
Authenticator authenticator) |
void |
addConfigMetadata(Transport transport,
ConfigMetadata metadata) |
void |
addConfigMetadata(Transport transport,
java.util.function.Supplier<reactor.core.publisher.Mono<ConfigMetadata>> metadata) |
void |
addDefaultMetadata(Transport transport,
DeviceMetadata metadata) |
void |
addDefaultMetadata(Transport transport,
reactor.core.publisher.Mono<DeviceMetadata> metadata) |
void |
addDeviceMetadataCodec(DeviceMetadataCodec codec) |
void |
addFeature(Feature... features)
添加全局Feature
|
void |
addFeature(Iterable<Feature> features)
添加全局Feature
|
void |
addFeature(Transport transport,
Feature... features)
给指定的Transport添加Feature
|
void |
addFeature(Transport transport,
reactor.core.publisher.Flux<Feature> features)
给指定的Transport添加Feature
|
void |
addFeature(Transport transport,
Iterable<Feature> features)
给指定的Transport添加Feature
|
void |
addMessageCodecSupport(DeviceMessageCodec codec) |
void |
addMessageCodecSupport(Transport transport,
DeviceMessageCodec codec) |
void |
addMessageCodecSupport(Transport transport,
java.util.function.Supplier<reactor.core.publisher.Mono<DeviceMessageCodec>> supplier) |
void |
addMessageSenderInterceptor(DeviceMessageSenderInterceptor interceptor) |
reactor.core.publisher.Mono<AuthenticationResponse> |
authenticate(AuthenticationRequest request,
DeviceOperator deviceOperation)
进行设备认证
|
reactor.core.publisher.Mono<AuthenticationResponse> |
authenticate(AuthenticationRequest request,
DeviceRegistry registry)
对不明确的设备进行认证
|
void |
dispose()
销毁协议
|
reactor.core.publisher.Mono<DeviceInfo> |
doBeforeDeviceCreate(Transport transport,
DeviceInfo deviceInfo)
在执行设备创建之前,执行指定的操作。
|
void |
doOnChildBind(java.util.function.BiFunction<DeviceOperator,reactor.core.publisher.Flux<DeviceOperator>,reactor.core.publisher.Mono<Void>> onChildBind) |
void |
doOnChildUnbind(java.util.function.BiFunction<DeviceOperator,reactor.core.publisher.Flux<DeviceOperator>,reactor.core.publisher.Mono<Void>> onChildUnbind) |
void |
doOnClientConnect(Transport transport,
java.util.function.BiFunction<ClientConnection,DeviceGatewayContext,reactor.core.publisher.Mono<Void>> handler)
监听客户端连接,只有部分协议支持此操作,如:
support.doOnClientConnect(TCP,(connection,context)->{
//客户端创建连接时,发送消息给客户端
return connection
.sendMessage(createHelloMessage())
.then();
})
|
CompositeProtocolSupport |
doOnDeviceMetadataChanged(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor) |
CompositeProtocolSupport |
doOnDeviceRegister(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor) |
CompositeProtocolSupport |
doOnDeviceUnRegister(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor) |
CompositeProtocolSupport |
doOnDispose(reactor.core.Disposable disposable) |
CompositeProtocolSupport |
doOnInit(java.util.function.Consumer<Map<String,Object>> runnable) |
CompositeProtocolSupport |
doOnProductMetadataChanged(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor) |
CompositeProtocolSupport |
doOnProductRegister(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor) |
CompositeProtocolSupport |
doOnProductUnRegister(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor) |
reactor.core.publisher.Mono<ConfigMetadata> |
getConfigMetadata(Transport transport)
获取协议所需的配置信息定义
|
reactor.core.publisher.Mono<DeviceMetadata> |
getDefaultMetadata(Transport transport)
获取默认物模型
|
reactor.core.publisher.Flux<Feature> |
getFeatures(Transport transport)
获取协议支持的某些自定义特性
|
reactor.core.publisher.Mono<ConfigMetadata> |
getInitConfigMetadata()
获取协议初始化所需要的配置定义
|
reactor.core.publisher.Mono<? extends DeviceMessageCodec> |
getMessageCodec(Transport transport)
获取设备消息编码解码器
用于将平台统一的消息对象转码为设备的消息
用于将设备发送的消息转吗为平台统一的消息对象
|
DeviceMetadataCodec |
getMetadataCodec()
获取默认的设备物模型编解码器
用于将平台统一的设备定义规范转码为协议的规范
用于将协议的规范转为平台统一的设备定义规范
|
reactor.core.publisher.Flux<DeviceMetadataCodec> |
getMetadataCodecs()
获取所有支持的物模型编解码器
|
reactor.core.publisher.Flux<ConfigMetadata> |
getMetadataExpandsConfig(Transport transport,
DeviceMetadataType metadataType,
String metadataId,
String dataTypeId)
获取物模型拓展配置定义
|
reactor.core.publisher.Mono<DeviceMessageSenderInterceptor> |
getSenderInterceptor()
获取设备消息发送拦截器, 用于拦截发送消息的行为.
|
reactor.core.publisher.Mono<DeviceStateChecker> |
getStateChecker()
获取自定义设备状态检查器,用于检查设备状态.
|
reactor.core.publisher.Flux<Transport> |
getSupportedTransport() |
void |
init(Map<String,Object> configuration)
初始化协议
|
void |
onBeforeDeviceCreate(Transport transport,
java.util.function.Function<DeviceInfo,reactor.core.publisher.Mono<DeviceInfo>> listener)
注册设备添加监听器,用于在创建设备时,进行自定义配置生成等操作.
|
reactor.core.publisher.Mono<Void> |
onChildBind(DeviceOperator gateway,
reactor.core.publisher.Flux<DeviceOperator> child)
触发手动绑定子设备到网关设备
|
reactor.core.publisher.Mono<Void> |
onChildUnbind(DeviceOperator gateway,
reactor.core.publisher.Flux<DeviceOperator> child)
触发手动接触绑定子设备到网关设备
|
reactor.core.publisher.Mono<Void> |
onClientConnect(Transport transport,
ClientConnection connection,
DeviceGatewayContext context)
客户端创建连接时调用,返回设备ID,表示此设备上线.
|
reactor.core.publisher.Mono<Void> |
onDeviceMetadataChanged(DeviceOperator operator)
当设备物模型变更时调用
|
reactor.core.publisher.Mono<Void> |
onDeviceRegister(DeviceOperator operator)
当设备注册生效后调用
|
reactor.core.publisher.Mono<Void> |
onDeviceUnRegister(DeviceOperator operator)
当设备注销前调用
|
reactor.core.publisher.Mono<Void> |
onProductMetadataChanged(DeviceProductOperator operator)
当产品物模型变更时调用
|
reactor.core.publisher.Mono<Void> |
onProductRegister(DeviceProductOperator operator)
当产品注册后调用
|
reactor.core.publisher.Mono<Void> |
onProductUnRegister(DeviceProductOperator operator)
当产品注销前调用
|
void |
setExpandsConfigMetadata(Transport transport,
ExpandsConfigMetadataSupplier supplier) |
void |
setInitConfigMetadata(ConfigMetadata metadata) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcompareTo, getDescription, getId, getName, getOrderpublic void dispose()
ProtocolSupportdispose 在接口中 ProtocolSupportdispose 在接口中 reactor.core.Disposablepublic void setInitConfigMetadata(ConfigMetadata metadata)
public void init(Map<String,Object> configuration)
ProtocolSupportinit 在接口中 ProtocolSupportconfiguration - 配置信息public CompositeProtocolSupport doOnDispose(reactor.core.Disposable disposable)
public CompositeProtocolSupport doOnInit(java.util.function.Consumer<Map<String,Object>> runnable)
public void addMessageCodecSupport(Transport transport, java.util.function.Supplier<reactor.core.publisher.Mono<DeviceMessageCodec>> supplier)
public void addMessageCodecSupport(Transport transport, DeviceMessageCodec codec)
public void addMessageCodecSupport(DeviceMessageCodec codec)
public void addAuthenticator(Transport transport, Authenticator authenticator)
public void addDefaultMetadata(Transport transport, reactor.core.publisher.Mono<DeviceMetadata> metadata)
public void addDefaultMetadata(Transport transport, DeviceMetadata metadata)
public reactor.core.publisher.Mono<DeviceMessageSenderInterceptor> getSenderInterceptor()
ProtocolSupportgetSenderInterceptor 在接口中 ProtocolSupportpublic void addMessageSenderInterceptor(DeviceMessageSenderInterceptor interceptor)
public void addConfigMetadata(Transport transport, java.util.function.Supplier<reactor.core.publisher.Mono<ConfigMetadata>> metadata)
public void addConfigMetadata(Transport transport, ConfigMetadata metadata)
public void setExpandsConfigMetadata(Transport transport, ExpandsConfigMetadataSupplier supplier)
public reactor.core.publisher.Flux<ConfigMetadata> getMetadataExpandsConfig(Transport transport, DeviceMetadataType metadataType, String metadataId, String dataTypeId)
ProtocolSupportgetMetadataExpandsConfig 在接口中 ProtocolSupporttransport - 传输协议类型metadataType - 物模型类型metadataId - 物模型标识dataTypeId - 数据类型ID Metadata.getId()public reactor.core.publisher.Mono<DeviceMetadata> getDefaultMetadata(Transport transport)
ProtocolSupportgetDefaultMetadata 在接口中 ProtocolSupporttransport - 传输协议public reactor.core.publisher.Flux<Transport> getSupportedTransport()
getSupportedTransport 在接口中 ProtocolSupport@Nonnull public reactor.core.publisher.Mono<? extends DeviceMessageCodec> getMessageCodec(Transport transport)
ProtocolSupportgetMessageCodec 在接口中 ProtocolSupport@Nonnull public DeviceMetadataCodec getMetadataCodec()
ProtocolSupportgetMetadataCodec 在接口中 ProtocolSupportpublic reactor.core.publisher.Flux<DeviceMetadataCodec> getMetadataCodecs()
ProtocolSupportgetMetadataCodecs 在接口中 ProtocolSupportpublic void addDeviceMetadataCodec(DeviceMetadataCodec codec)
@Nonnull public reactor.core.publisher.Mono<AuthenticationResponse> authenticate(@Nonnull AuthenticationRequest request, @Nonnull DeviceOperator deviceOperation)
ProtocolSupportauthenticate 在接口中 ProtocolSupportrequest - 认证请求,不同的连接方式实现不同deviceOperation - 设备操作接口,可用于配置设备MqttAuthenticationRequest@Nonnull public reactor.core.publisher.Mono<AuthenticationResponse> authenticate(@Nonnull AuthenticationRequest request, @Nonnull DeviceRegistry registry)
ProtocolSupportauthenticate 在接口中 ProtocolSupportrequest - 认证请求registry - 注册中心public reactor.core.publisher.Mono<ConfigMetadata> getConfigMetadata(Transport transport)
ProtocolSupportgetConfigMetadata 在接口中 ProtocolSupportConfigurable.getConfigs(String...),
Configurable.setConfigs(Map)public reactor.core.publisher.Mono<ConfigMetadata> getInitConfigMetadata()
ProtocolSupportgetInitConfigMetadata 在接口中 ProtocolSupport@Nonnull public reactor.core.publisher.Mono<DeviceStateChecker> getStateChecker()
ProtocolSupportgetStateChecker 在接口中 ProtocolSupportpublic CompositeProtocolSupport doOnDeviceRegister(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor)
public CompositeProtocolSupport doOnDeviceUnRegister(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor)
public CompositeProtocolSupport doOnProductRegister(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor)
public CompositeProtocolSupport doOnProductUnRegister(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor)
public CompositeProtocolSupport doOnProductMetadataChanged(java.util.function.Function<DeviceProductOperator,reactor.core.publisher.Mono<Void>> executor)
public CompositeProtocolSupport doOnDeviceMetadataChanged(java.util.function.Function<DeviceOperator,reactor.core.publisher.Mono<Void>> executor)
public void doOnClientConnect(Transport transport, java.util.function.BiFunction<ClientConnection,DeviceGatewayContext,reactor.core.publisher.Mono<Void>> handler)
support.doOnClientConnect(TCP,(connection,context)->{
//客户端创建连接时,发送消息给客户端
return connection
.sendMessage(createHelloMessage())
.then();
})
transport - 通信协议,如: DefaultTransport.TCPhandler - 处理器public reactor.core.publisher.Mono<Void> onDeviceRegister(DeviceOperator operator)
ProtocolSupportonDeviceRegister 在接口中 ProtocolSupportoperator - 设备操作接口public reactor.core.publisher.Mono<Void> onDeviceUnRegister(DeviceOperator operator)
ProtocolSupportonDeviceUnRegister 在接口中 ProtocolSupportoperator - 设备操作接口public reactor.core.publisher.Mono<Void> onProductRegister(DeviceProductOperator operator)
ProtocolSupportonProductRegister 在接口中 ProtocolSupportoperator - 产品操作接口public reactor.core.publisher.Mono<Void> onProductUnRegister(DeviceProductOperator operator)
ProtocolSupportonProductUnRegister 在接口中 ProtocolSupportoperator - 产品操作接口public reactor.core.publisher.Mono<Void> onDeviceMetadataChanged(DeviceOperator operator)
ProtocolSupportonDeviceMetadataChanged 在接口中 ProtocolSupportoperator - 设备操作接口public reactor.core.publisher.Mono<Void> onProductMetadataChanged(DeviceProductOperator operator)
ProtocolSupportonProductMetadataChanged 在接口中 ProtocolSupportoperator - 产品操作接口public void doOnChildBind(java.util.function.BiFunction<DeviceOperator,reactor.core.publisher.Flux<DeviceOperator>,reactor.core.publisher.Mono<Void>> onChildBind)
public void doOnChildUnbind(java.util.function.BiFunction<DeviceOperator,reactor.core.publisher.Flux<DeviceOperator>,reactor.core.publisher.Mono<Void>> onChildUnbind)
public reactor.core.publisher.Mono<Void> onClientConnect(Transport transport, ClientConnection connection, DeviceGatewayContext context)
ProtocolSupportonClientConnect 在接口中 ProtocolSupporttransport - 传输协议connection - 客户端连接public reactor.core.publisher.Mono<Void> onChildBind(DeviceOperator gateway, reactor.core.publisher.Flux<DeviceOperator> child)
ProtocolSupportonChildBind 在接口中 ProtocolSupportgateway - 网关child - 子设备流public reactor.core.publisher.Mono<Void> onChildUnbind(DeviceOperator gateway, reactor.core.publisher.Flux<DeviceOperator> child)
ProtocolSupportonChildUnbind 在接口中 ProtocolSupportgateway - 网关child - 子设备流public void addFeature(Transport transport, Feature... features)
features - Featurepublic void addFeature(Transport transport, Iterable<Feature> features)
features - Featurepublic void addFeature(Transport transport, reactor.core.publisher.Flux<Feature> features)
features - Featurepublic void addFeature(Feature... features)
features - FeatureMetadataFeature,
ManagementFeaturepublic void onBeforeDeviceCreate(Transport transport, java.util.function.Function<DeviceInfo,reactor.core.publisher.Mono<DeviceInfo>> listener)
transport - 传输协议listener - 监听器public reactor.core.publisher.Mono<DeviceInfo> doBeforeDeviceCreate(Transport transport, DeviceInfo deviceInfo)
ProtocolSupportdoBeforeDeviceCreate 在接口中 ProtocolSupportdeviceInfo - 设备信息public reactor.core.publisher.Flux<Feature> getFeatures(Transport transport)
ProtocolSupportgetFeatures 在接口中 ProtocolSupportCopyright © 2019–2022. All rights reserved.