物联网开发:基于topic分布式消息总线EventBus
目录
消息总线(EventBus)基于topic来进行数据传递
1、Topic
采用树结构来定义topic如:/device/id/message/type . topic支持路径通配符,如:/device/** 或者/device//message/.
TIP
通配符**表示匹配多层路径,*表示匹配单层路径. 不支持前后匹配,如: /device/id-*/message.
发布和订阅均支持通配符,发布时使用通配符时则进行广播.
2、EventBus的使用
#订阅消息:
@Subscribe(value="/device/*/*/online",features= {Subscription.Feature.broker})
public void handleDeviceMessageOnline(DeviceMessage message){
System.err.println("收到设备上线消息"+ JSON.toJSONString(message));
}
#发布消息:
@Autowired
private EventBus eventBus;
public void online(String topic, DeviceOnlineMessage message) {
//...业务逻辑
eventBus.publish(topic,message);
}
相关资源: EventBus:基于topic分布式消息总线-源码.