public interface DeviceMessageEncoder
EncodedMessage,
Message| 限定符和类型 | 方法和说明 |
|---|---|
org.reactivestreams.Publisher<? extends EncodedMessage> |
encode(MessageEncodeContext context)
编码,将消息进行编码,用于发送到设备端.
|
@Nonnull org.reactivestreams.Publisher<? extends EncodedMessage> encode(@Nonnull MessageEncodeContext context)
DeviceMessage转为设备能理解的消息EncodedMessage.
例如:
//返回单个消息给设备,多个使用Flux<EncodedMessage>作为返回值
public Mono<EncodedMessage> encode(MessageEncodeContext context){
return Mono.just(doEncode(context.getMessage()));
}
//忽略发送给设备,直接返回结果给指令发送者
public Mono<EncodedMessage> encode(MessageEncodeContext context){
DeviceMessage message = (DeviceMessage)context.getMessage();
return context
.reply(handleMessage(message)) //返回结果给指令发送者
.then(Mono.empty())
}
如果要串行发送数据,可以参考使用ParallelIntervalHelper工具类context - 消息上下文MqttMessage,
Message,
读取设备属性,
修改设备属性,
调用设备功能,
子设备消息,
DeviceMessageEncodeInterceptor,
ParallelIntervalHelperCopyright © 2019–2022. All rights reserved.