|
|
@@ -1,6 +1,7 @@
|
|
|
package com.xunmei.mediator.websocket.enums;
|
|
|
|
|
|
|
|
|
+import io.netty.util.internal.StringUtil;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Getter;
|
|
|
import lombok.Setter;
|
|
|
@@ -15,22 +16,29 @@ public enum TopicTypeEnums {
|
|
|
|
|
|
|
|
|
//系统通知
|
|
|
- SYS_NOTICE("/sys/notification","",""),
|
|
|
+ SYS_NOTICE("/sys/notification", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING),
|
|
|
//设备状态通知
|
|
|
- DEVICE_STATUS("^/device/status/([^/]+)/([^/]+)$","",""),
|
|
|
+ DEVICE_STATUS("^/device/status/([^/]+)/([^/]+)$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/device/status/%s/%s"),
|
|
|
//产品事件通知消息
|
|
|
- PRODUCT_EVENT_NOTICE("^/things/([^/]+)/([^/]+)/event/post$","",""),
|
|
|
+ PRODUCT_EVENT_NOTICE("^/things/([^/]+)/([^/]+)/event/post$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING,"/things/%s/%s/event/post"),
|
|
|
+ //产品事件通知返回发给IOT消息
|
|
|
+ PRODUCT_EVENT_NOTICE_REPLY("^/things/([^/]+)/([^/]+)/event/post/reply$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING,"/things/%s/%s/event/post/reply"),
|
|
|
//应用方调用IoT产品服务消息
|
|
|
- PRODUCT_SERVICE_INVOKE("^/things/([^/]+)/([^/]+)/service/invoke$","",""),
|
|
|
+ PRODUCT_SERVICE_INVOKE("^/things/([^/]+)/([^/]+)/service/invoke$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING,"/things/%s/%s/service/invoke"),
|
|
|
//IoT返回服务调用消息
|
|
|
- PRODUCT_SERVICE_REPLY("^/things/([^/]+)/([^/]+)/service/invoke/reply$","",""),
|
|
|
+ PRODUCT_SERVICE_REPLY("^/things/([^/]+)/([^/]+)/service/invoke/reply$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/service/invoke/reply"),
|
|
|
//应用方读取属性
|
|
|
- PRODUCT_PROPERTY_GET("^/things/([^/]+)/([^/]+)/property/get$","",""),
|
|
|
+ PRODUCT_PROPERTY_GET("^/things/([^/]+)/([^/]+)/property/get$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/get"),
|
|
|
//IoT返回属性
|
|
|
- PRODUCT_PROPERTY_REPLY("^/things/([^/]+)/([^/]+)/property/get/reply$","",""),
|
|
|
+ PRODUCT_PROPERTY_GET_REPLY("^/things/([^/]+)/([^/]+)/property/get/reply$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/get/reply"),
|
|
|
//应用方设置属性
|
|
|
- PRODUCT_PROPERTY_SET("^/things/([^/]+)/([^/]+)/property/set$","",""),
|
|
|
-
|
|
|
+ PRODUCT_PROPERTY_SET("^/things/([^/]+)/([^/]+)/property/set$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/set"),
|
|
|
+ //应用方设置属性
|
|
|
+ PRODUCT_PROPERTY_SET_REPLY("^/things/([^/]+)/([^/]+)/property/set$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/set/reply"),
|
|
|
+ //IoT上报属性
|
|
|
+ PRODUCT_PROPERTY_POST("^/things/([^/]+)/([^/]+)/property/post", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/post"),
|
|
|
+ //IoT上报属性返回消息
|
|
|
+ PRODUCT_PROPERTY_POST_REPLY("^/things/([^/]+)/([^/]+)/property/post/reply$", StringUtil.EMPTY_STRING, StringUtil.EMPTY_STRING, "/things/%s/%s/property/post/reply"),
|
|
|
;
|
|
|
|
|
|
private final String topic;
|
|
|
@@ -39,6 +47,8 @@ public enum TopicTypeEnums {
|
|
|
@Setter
|
|
|
private String deviceName;
|
|
|
|
|
|
+ private String url;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
@@ -46,6 +56,7 @@ public enum TopicTypeEnums {
|
|
|
TopicTypeEnums[] typeEnums = TopicTypeEnums.values();
|
|
|
for (TopicTypeEnums regex : typeEnums) {
|
|
|
Pattern pattern = Pattern.compile(regex.getTopic());
|
|
|
+
|
|
|
// 创建Matcher对象
|
|
|
Matcher matcher = pattern.matcher(topic);
|
|
|
// 检查是否匹配成功
|