diff --git a/go-push-common/src/main/java/com/gopush/common/constants/DeviceEnum.java b/go-push-common/src/main/java/com/gopush/common/constants/DeviceMessageEnum.java
similarity index 54%
rename from go-push-common/src/main/java/com/gopush/common/constants/DeviceEnum.java
rename to go-push-common/src/main/java/com/gopush/common/constants/DeviceMessageEnum.java
index 0f667bc9008aaa1676e25bb88f4c9130877cb9cd..192f14c66a8644d6a03c4e6f1c0571ffca720b75 100644
--- a/go-push-common/src/main/java/com/gopush/common/constants/DeviceEnum.java
+++ b/go-push-common/src/main/java/com/gopush/common/constants/DeviceMessageEnum.java
@@ -1,8 +1,8 @@
package com.gopush.common.constants;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/14 上午12:14
*/
-public enum DeviceEnum {
+public enum DeviceMessageEnum {
}
diff --git a/go-push-common/src/main/java/com/gopush/common/constants/HandshakeEnum.java b/go-push-common/src/main/java/com/gopush/common/constants/HandshakeEnum.java
index 12d1c9006bf1d9f3faf4b9a5ebf0cf2d219a374b..0192a3478993fb03e49af8d8ba34ff74800ed414 100644
--- a/go-push-common/src/main/java/com/gopush/common/constants/HandshakeEnum.java
+++ b/go-push-common/src/main/java/com/gopush/common/constants/HandshakeEnum.java
@@ -5,7 +5,7 @@ import lombok.Getter;
import java.util.Arrays;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/14 上午12:05
*/
@Getter
@@ -13,19 +13,19 @@ public enum HandshakeEnum {
HANDSAHKE_OK(200,"握手成功"),
HANDSHAKE_INVALID_DEVICE(300,"非法设备"),
HANDSHAKE_INVALID_TOKEN(301,"非法Token");
- private int value;
+ private int key;
private String descri;
- HandshakeEnum(int value, String descri){
- this.value = value;
+ HandshakeEnum(int key, String descri){
+ this.key = key;
this.descri = descri;
}
- public static HandshakeEnum fromValue(int value) {
- if (value <= 0) {
+ public static HandshakeEnum fromKey(int key) {
+ if (key <= 0) {
return null;
}
return Arrays.stream(HandshakeEnum.values())
- .filter(a -> value == a.getValue())
+ .filter(a -> key == a.getKey())
.findFirst()
.orElse(null);
}
diff --git a/go-push-common/src/main/java/com/gopush/common/constants/NodeEnum.java b/go-push-common/src/main/java/com/gopush/common/constants/NodeMessageEnum.java
similarity index 68%
rename from go-push-common/src/main/java/com/gopush/common/constants/NodeEnum.java
rename to go-push-common/src/main/java/com/gopush/common/constants/NodeMessageEnum.java
index 1651622bb22f8b95d4e071e9686c69fe45e94cca..e6435d918ba0540abf1406efaa45ea5e6aab23e0 100644
--- a/go-push-common/src/main/java/com/gopush/common/constants/NodeEnum.java
+++ b/go-push-common/src/main/java/com/gopush/common/constants/NodeMessageEnum.java
@@ -6,11 +6,11 @@ import lombok.Getter;
import java.util.Arrays;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/14 上午12:13
*/
@Getter
-public enum NodeEnum {
+public enum NodeMessageEnum {
OK(200,"OK"),
FAIL(500,"FAIL")
@@ -20,16 +20,16 @@ public enum NodeEnum {
private int code;
private String descri;
- NodeEnum(int code,String descri){
+ NodeMessageEnum(int code, String descri){
this.code = code;
this.descri = descri;
}
- public static NodeEnum fromCode(int code) {
+ public static NodeMessageEnum fromCode(int code) {
if (code <= 0) {
return null;
}
- return Arrays.stream(NodeEnum.values())
+ return Arrays.stream(NodeMessageEnum.values())
.filter(a -> code == a.getCode())
.findFirst()
.orElse(null);
diff --git a/go-push-common/src/main/java/com/gopush/common/constants/RestfulRespEnum.java b/go-push-common/src/main/java/com/gopush/common/constants/RestfulRespEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..205dd33d2eb9a1f313b0fd47fbf0953e15e1d5e3
--- /dev/null
+++ b/go-push-common/src/main/java/com/gopush/common/constants/RestfulRespEnum.java
@@ -0,0 +1,34 @@
+package com.gopush.common.constants;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * @author chenxiangqi
+ * @date 2017/9/14 下午5:31
+ */
+@Getter
+public enum RestfulRespEnum {
+
+ OK(0,"成功");
+
+ private int key;
+ private String descri;
+
+ RestfulRespEnum(int key,String descri){
+ this.key = key;
+ this.descri = descri;
+ }
+
+
+ public static RestfulRespEnum fromKey(int key) {
+ if (key <= 0) {
+ return null;
+ }
+ return Arrays.stream(RestfulRespEnum.values())
+ .filter(a -> key == a.getKey())
+ .findFirst()
+ .orElse(null);
+ }
+}
diff --git a/go-push-common/src/main/java/com/gopush/common/constants/ZkGroupEnum.java b/go-push-common/src/main/java/com/gopush/common/constants/ZkGroupEnum.java
index 186f61329c85edaae8be4ab8bf9b6e21cf59f239..69e3abf8e7fd2515695634731b13922dc1dac952 100644
--- a/go-push-common/src/main/java/com/gopush/common/constants/ZkGroupEnum.java
+++ b/go-push-common/src/main/java/com/gopush/common/constants/ZkGroupEnum.java
@@ -5,7 +5,7 @@ import lombok.Getter;
import java.util.Arrays;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/12 上午3:16
*/
@Getter
diff --git a/go-push-data-center/pom.xml b/go-push-data-center/pom.xml
index 0d22f2148423aeaf22b4ae4015313da37ae90c29..82c5c751919fd91169f2084d104ffc5161e86011 100644
--- a/go-push-data-center/pom.xml
+++ b/go-push-data-center/pom.xml
@@ -48,12 +48,42 @@
spring-boot-starter-data-redis
+
+ com.didispace
+ spring-boot-starter-swagger
+
+
org.projectlombok
lombok
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/DataCenterApplication.java b/go-push-data-center/src/main/java/com/gopush/datacenter/DataCenterApplication.java
index 637c39ed66615156bb30c76f85dde1d80677d39e..d7ce2c00594acd4852d022106cce51a42ce9db62 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/DataCenterApplication.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/DataCenterApplication.java
@@ -1,7 +1,9 @@
package com.gopush.datacenter;
+import com.didispace.swagger.EnableSwagger2Doc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
/**
* go-push
@@ -11,7 +13,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @创建时间:2017/6/11 下午1:28
* @VERSION:
*/
-
+@EnableSwagger2Doc
+@EnableAsync
@SpringBootApplication
public class DataCenterApplication {
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/discovery/NodeServerDiscoveryService.java b/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/discovery/NodeServerDiscoveryService.java
index 3dabaea77d0f87cd3f2800330174c7bb92d4282f..170d0203b2dfdc7e89936c499bb9444926bd91bc 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/discovery/NodeServerDiscoveryService.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/discovery/NodeServerDiscoveryService.java
@@ -22,7 +22,7 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/12 上午3:13
*/
@@ -139,7 +139,6 @@ public class NodeServerDiscoveryService {
nodeServerPool.remove(key);
}
-
}
private void addNodeEvent(PathChildrenCacheEvent event) {
@@ -155,9 +154,11 @@ public class NodeServerDiscoveryService {
}
}
+
+
private String toKey(PathChildrenCacheEvent event){
String path = event.getData().getPath() ;
- return path.substring(path.lastIndexOf("/"));
+ return path.substring(path.lastIndexOf("/")).replaceAll("/","");
}
private NodeServerInfo toNodeServerInfo(PathChildrenCacheEvent event){
return JSON.parseObject(event.getData().getData(), NodeServerInfo.class);
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/register/DataCenterRegisterService.java b/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/register/DataCenterRegisterService.java
index dc74f00da59f478c443f62f445c0d4fde900cbb6..f5b63916c5efd005b0ee89b39b75f114c44d863d 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/register/DataCenterRegisterService.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/dymic/register/DataCenterRegisterService.java
@@ -17,7 +17,7 @@ import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/12 下午2:20
*/
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/DeviceDisconnectHandler.java b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/DeviceDisconnectHandler.java
index 12bb043f318076fd2737cebd87bc6a24d91a0adf..ab67b5ecda822328032b2fe379d860d06d51845a 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/DeviceDisconnectHandler.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/DeviceDisconnectHandler.java
@@ -1,7 +1,9 @@
package com.gopush.datacenter.nodes.handlers;
+import com.gopush.common.constants.NodeMessageEnum;
import com.gopush.nodes.handlers.INodeMessageHandler;
import com.gopush.protocol.node.DeviceDisconReq;
+import com.gopush.protocol.node.DeviceDisconResp;
import com.gopush.protocol.node.NodeMessage;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
@@ -29,8 +31,7 @@ public class DeviceDisconnectHandler implements INodeMessageHandler
@Override
public void call(ChannelHandlerContext ctx, DeviceDockedReq message) {
Channel channel = ctx.channel();
-
+ channel.writeAndFlush(DeviceDockedResp.builder().result(NodeMessageEnum.OK.getCode()).build().encode());
log.info("receive DeviceDockedReq, channel:{}", channel);
}
}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/NodeInfoHandler.java b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/NodeInfoHandler.java
index 2d043a7ce1fdce9b0b0b485d7d77ddaa76132142..4ecefb7674c0f1ffd7a9f5f292121c132cbc6400 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/NodeInfoHandler.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/handlers/NodeInfoHandler.java
@@ -1,6 +1,6 @@
package com.gopush.datacenter.nodes.handlers;
-import com.gopush.common.constants.NodeEnum;
+import com.gopush.common.constants.NodeMessageEnum;
import com.gopush.nodes.handlers.INodeMessageHandler;
import com.gopush.protocol.node.NodeInfoReq;
import com.gopush.protocol.node.NodeInfoResp;
@@ -31,7 +31,7 @@ public class NodeInfoHandler implements INodeMessageHandler {
@Override
public void call(ChannelHandlerContext ctx, NodeInfoReq message) {
Channel channel = ctx.channel();
- channel.writeAndFlush(NodeInfoResp.builder().result(NodeEnum.OK.getCode()).build().encode());
+ channel.writeAndFlush(NodeInfoResp.builder().result(NodeMessageEnum.OK.getCode()).build().encode());
log.info("receive nodeInfoReq,channel:{}", channel);
}
}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/ReloadNodesListener.java b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/ReloadNodesListener.java
index 70a9b38010b8d8e5baaae154919d3f0da7399c2f..651bd8ce3c5e2f318d4647bb1e1330d193b7def4 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/ReloadNodesListener.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/ReloadNodesListener.java
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
import java.util.Map;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/12 下午11:09
*/
@Slf4j
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/event/ReloadNodesEvent.java b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/event/ReloadNodesEvent.java
index d2a49dbc3e4c6a06734f7686252139d53febe18d..ce88ce6af69e226b99eec161d1fd390cabfb7bba 100644
--- a/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/event/ReloadNodesEvent.java
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/nodes/manager/listener/event/ReloadNodesEvent.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
/**
- * @author chenxiangqi
+ * @author 喝咖啡的囊地鼠
* @date 2017/9/12 下午11:09
*/
@Data
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisDeviceController.java b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisDeviceController.java
new file mode 100644
index 0000000000000000000000000000000000000000..035beb56ec2be6c2724520376f2c8032513cb98b
--- /dev/null
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisDeviceController.java
@@ -0,0 +1,84 @@
+package com.gopush.datacenter.restfuls.controller;
+
+import com.gopush.common.constants.IdleEnum;
+import com.gopush.datacenter.dymic.discovery.NodeServerDiscoveryService;
+import com.gopush.datacenter.restfuls.pojo.BaseResp;
+import com.gopush.datacenter.restfuls.pojo.bo.Device;
+import com.gopush.datacenter.restfuls.pojo.bo.LoadbanceNode;
+import com.gopush.infos.nodeserver.bo.NodeServerInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * @author 喝咖啡的囊地鼠
+ * @date 2017/9/14 下午3:18
+ */
+
+@RestController
+@RequestMapping(value = "/apis/device")
+@Api(tags = "设备|链接相关")
+public class ApisDeviceController {
+
+ @Autowired
+ private NodeServerDiscoveryService nodeServerDiscoveryService;
+
+ @ApiOperation(value = "设备注册",notes = "注册设备(一台设备只注册一次,但是可以增加APPCode)")
+ @RequestMapping(value = "/register",method = RequestMethod.POST)
+ public ResponseEntity> register(@RequestBody Device device){
+ //内部生产一个设备号给注册的设备
+ //查找缓存,设置注册设备,没有设备的话注册,有的话检查appcode,没有的加入appcode 有的话直接返回已经注册的设备号
+ //todo
+ return ResponseEntity.ok(BaseResp.ok(token()));
+ }
+
+ @ApiOperation(value = "设备取消注册",notes = "取消注册设备(一台设备只注册一次)")
+ @RequestMapping(value = "/unregister/{deviceNo}",method = RequestMethod.DELETE)
+ public ResponseEntity unregister(@PathVariable("deviceNo") @ApiParam("设备号") String deviceNo){
+ //查找缓存,没有设备的话直接返回,有的话 取消注册的设备,清空设备的有效期(从而导致sdk端或者服务端关闭链接)
+ //todo
+ return ResponseEntity.ok(BaseResp.ok());
+ }
+
+ @ApiOperation(value = "查询设备状态",notes = "查询设备状态")
+ @RequestMapping(value = "/{deviceNo}/state",method = RequestMethod.GET)
+ public ResponseEntity deviceState(@PathVariable("deviceNo") @ApiParam("设备号") String deviceNo) {
+ //查找缓存,没有设备的话直接返回,有的话 取消注册的设备,清空设备的有效期(从而导致sdk端或者服务端关闭链接)
+ //todo 查询设备状态
+ return ResponseEntity.ok(BaseResp.ok());
+ }
+
+
+ @ApiOperation(value = "设备选择链接节点",notes = "设备选择链接节点")
+ @RequestMapping(value = "/select",method = RequestMethod.GET)
+ public ResponseEntity> selectNode(){
+ Map maps = new HashMap<>(nodeServerDiscoveryService.nodeServerPool());
+ if (!CollectionUtils.isEmpty(maps)){
+ NodeServerInfo info = maps.values().stream()
+ .min(Comparator.comparingInt(e -> e.getNodeLoaderInfo().getOnlineDeviceCounter()))
+ .get();
+ return ResponseEntity.ok(
+ BaseResp.ok(
+ LoadbanceNode.builder()
+ .ip(info.getInternetIp())
+ .port(info.getDevicePort())
+ .readInterval(IdleEnum.READ_IDLE.getValue())
+ .writeInterval(IdleEnum.WRITE_IDLE.getValue())
+ .allInterval(IdleEnum.ALL_IDLE.getValue())
+ .build()
+ ));
+ }
+ return ResponseEntity.ok(BaseResp.fail(400,"无可链接节点"));
+ }
+
+
+ private String token(){
+ return UUID.randomUUID().toString().replaceAll("\\-","");
+ }
+}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisPushController.java b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisPushController.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae01e46951c25de4c172b67a00805b949367afc9
--- /dev/null
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/controller/ApisPushController.java
@@ -0,0 +1,37 @@
+package com.gopush.datacenter.restfuls.controller;
+
+import com.gopush.datacenter.restfuls.pojo.BaseResp;
+import com.gopush.datacenter.restfuls.pojo.bo.Device;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author chenxiangqi
+ * @date 2017/9/14 下午10:57
+ */
+
+
+@RestController
+@RequestMapping(value = "/apis/push")
+@Api(tags = "推送消息相关")
+public class ApisPushController {
+
+ @ApiOperation(value = "向单个设备推送消息",notes = "向单个设备推送消息")
+ @RequestMapping(value = "/one",method = RequestMethod.POST)
+ public ResponseEntity pushOne(@RequestBody Device device){
+ //todo
+ return ResponseEntity.ok(BaseResp.ok());
+ }
+
+ @ApiOperation(value = "向多个设备推送消息",notes = "向多个设备推送消息")
+ @RequestMapping(value = "/numerous",method = RequestMethod.POST)
+ public ResponseEntity pushNumerous(@RequestBody Device device){
+ //todo
+ return ResponseEntity.ok(BaseResp.ok());
+ }
+}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/BaseResp.java b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/BaseResp.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d1755797965d47bc04ef64b52783cfb8c43f933
--- /dev/null
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/BaseResp.java
@@ -0,0 +1,40 @@
+package com.gopush.datacenter.restfuls.pojo;
+
+import com.gopush.common.constants.RestfulRespEnum;
+import lombok.*;
+
+/**
+ * @author chenxiangqi
+ * @date 2017/9/14 下午5:27
+ */
+
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode
+@ToString
+@Getter
+public class BaseResp {
+ private Integer code;
+ private String description;
+ private T data;
+
+ public static BaseResp ok(T data){
+ return BaseResp.builder()
+ .data(data)
+ .code(RestfulRespEnum.OK.getKey())
+ .description(RestfulRespEnum.OK.getDescri())
+ .build();
+ }
+
+ public static BaseResp ok(){
+ return ok(null);
+ }
+
+ public static BaseResp fail(int failCode,String failMsg){
+ return fail(failCode,failMsg,null);
+ }
+ public static BaseResp fail(int failCode,String failMsg,T data){
+ return BaseResp.builder().code(failCode).description(failMsg).data(data).build();
+ }
+}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/Device.java b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/Device.java
new file mode 100644
index 0000000000000000000000000000000000000000..71ffaabdb37ad358e8c46f8436a861b3644ea1d3
--- /dev/null
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/Device.java
@@ -0,0 +1,30 @@
+package com.gopush.datacenter.restfuls.pojo.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author chenxiangqi
+ * @date 2017/9/14 下午3:32
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("设备")
+public class Device {
+
+ @ApiModelProperty(value = "设备号",required = true, example = "IMEI99999")
+ private String deviceNo;
+
+ @ApiModelProperty(value = "设备类型", required = true, example = "ios,android,other")
+ private String type;
+
+ @ApiModelProperty(value = "应用Code",example = "com.baidu")
+ private String appCode;
+
+}
diff --git a/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/LoadbanceNode.java b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/LoadbanceNode.java
new file mode 100644
index 0000000000000000000000000000000000000000..c298b65c3d613aad741c4c6d949ba44a9dca54a1
--- /dev/null
+++ b/go-push-data-center/src/main/java/com/gopush/datacenter/restfuls/pojo/bo/LoadbanceNode.java
@@ -0,0 +1,33 @@
+package com.gopush.datacenter.restfuls.pojo.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author chenxiangqi
+ * @date 2017/9/14 下午10:15
+ */
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("选择节点")
+public class LoadbanceNode {
+ @ApiModelProperty(value = "链接IP", example = "192.168.1.1")
+ private String ip;
+
+ @ApiModelProperty(value = "链接PORT", example = "9999")
+ private int port;
+ @ApiModelProperty(value = "读周期", example = "10")
+ private int readInterval;
+ @ApiModelProperty(value = "写周期", example = "30")
+ private int writeInterval;
+ @ApiModelProperty(value = "读写周期", example = "50")
+ private int allInterval;
+
+}
diff --git a/go-push-data-center/src/main/resources/application.yml b/go-push-data-center/src/main/resources/application.yml
index 513ba5ca3f74b72bd7c90bd044726776a8a0a92b..f8d589c70d0e4aa089d39c6fd833c1a751fd9ff4 100644
--- a/go-push-data-center/src/main/resources/application.yml
+++ b/go-push-data-center/src/main/resources/application.yml
@@ -1,14 +1,6 @@
-go-push:
- data-center:
- name: dataCenter001
- zookeeper:
- servers: 192.168.99.100:32768,192.168.99.100:32769,192.168.99.100:32770
- listen-namespace: nodeserver
- namespace: datacenter
- session-timeout: 6000
- connection-timeout: 6000
- max-retries: 1000
- retries-sleep-time: 2000
+
+server:
+ port: 7011
spring:
redis:
@@ -18,6 +10,29 @@ spring:
- 127.0.0.1:6379
+go-push:
+ data-center:
+ name: DataCenter-${random.int(100)}
+ zookeeper:
+ servers: 192.168.99.100:32768,192.168.99.100:32769,192.168.99.100:32770
+ listen-namespace: namespace-node-server
+ namespace: namespace-data-center
+ session-timeout: 6000
+ connection-timeout: 6000
+ max-retries: 1000
+ retries-sleep-time: 2000
-server:
- port: 8031
+swagger:
+ title: GoPush Restful接口
+ description: ${swagger.title}文档说明
+ version: ${application.version}
+ license: GoPush 许可
+ license-url: https://gitee.com/openWolf/gopush/blob/master/LICENSE
+ terms-of-service-url: https://gitee.com/openWolf/gopush/issues/new
+ contact:
+ name: 喝咖啡的囊地鼠
+ url: https://gitee.com/openWolf/gopush
+ email: null_hello@qq.com
+ base-package: com.gopush.datacenter.restful
+ base-path: /**
+ exclude-path: /error,/ops/**
\ No newline at end of file
diff --git a/go-push-data-center/src/main/resources/banner.txt b/go-push-data-center/src/main/resources/banner.txt
index 8fe72c367ed71f99ac2d9d232fabd91988d5d447..540da3dd52d867f259c0c7c7c69eb067ffc382c8 100644
--- a/go-push-data-center/src/main/resources/banner.txt
+++ b/go-push-data-center/src/main/resources/banner.txt
@@ -9,7 +9,6 @@ ${AnsiColor.BRIGHT_GREEN}
|______|______|______|______|______|______|______|______|______|______|______| | | |_ |/ _ \| ___/ | | / __| '_ \
| |__| | (_) | | | |_| \__ \ | | |
\_____|\___/|_| \__,_|___/_| |_|
-
${AnsiColor.BRIGHT_RED}
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
\ No newline at end of file
diff --git a/go-push-monitor/src/main/resources/application-dev.yml b/go-push-monitor/src/main/resources/application-dev.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eeabd2b41cf82cb6cafc00d9de650d3b6d1a5317
--- /dev/null
+++ b/go-push-monitor/src/main/resources/application-dev.yml
@@ -0,0 +1,9 @@
+
+redis:
+ cluster:
+ servers: 127.0.0.1:6379
+ dockedServers: 127.0.0.1:6379
+ poolSize: 40
+ timeout: 5000
+server:
+ port: 8011
\ No newline at end of file
diff --git a/go-push-monitor/src/main/resources/application-prod.yml b/go-push-monitor/src/main/resources/application-prod.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eeabd2b41cf82cb6cafc00d9de650d3b6d1a5317
--- /dev/null
+++ b/go-push-monitor/src/main/resources/application-prod.yml
@@ -0,0 +1,9 @@
+
+redis:
+ cluster:
+ servers: 127.0.0.1:6379
+ dockedServers: 127.0.0.1:6379
+ poolSize: 40
+ timeout: 5000
+server:
+ port: 8011
\ No newline at end of file
diff --git a/go-push-monitor/src/main/resources/application-test.yml b/go-push-monitor/src/main/resources/application-test.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eeabd2b41cf82cb6cafc00d9de650d3b6d1a5317
--- /dev/null
+++ b/go-push-monitor/src/main/resources/application-test.yml
@@ -0,0 +1,9 @@
+
+redis:
+ cluster:
+ servers: 127.0.0.1:6379
+ dockedServers: 127.0.0.1:6379
+ poolSize: 40
+ timeout: 5000
+server:
+ port: 8011
\ No newline at end of file
diff --git a/go-push-node-server/pom.xml b/go-push-node-server/pom.xml
index 4abd4316cb21500d26f403c69b3c2a7cc8a981a1..7f78b1c54e01567d4c09237eb343c5aea9e258ef 100644
--- a/go-push-node-server/pom.xml
+++ b/go-push-node-server/pom.xml
@@ -76,4 +76,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/go-push-node-server/src/main/java/com/gopush/nodeserver/NodeServerApplication.java b/go-push-node-server/src/main/java/com/gopush/nodeserver/NodeServerApplication.java
index 7c922f0eac0ed354b26b6eb4c4c7bf76a0e37870..bcb389addbbb329c176d74f9438ceddeda65548f 100644
--- a/go-push-node-server/src/main/java/com/gopush/nodeserver/NodeServerApplication.java
+++ b/go-push-node-server/src/main/java/com/gopush/nodeserver/NodeServerApplication.java
@@ -2,6 +2,7 @@ package com.gopush.nodeserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
/**
* go-push
@@ -11,6 +12,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @创建时间:2017/6/11 上午11:43
* @VERSION:
*/
+@EnableAsync
@SpringBootApplication
public class NodeServerApplication {
diff --git a/go-push-node-server/src/main/java/com/gopush/nodeserver/devices/handlers/HandShakeHandler.java b/go-push-node-server/src/main/java/com/gopush/nodeserver/devices/handlers/HandShakeHandler.java
index 26420e6fadeb6720e42abf7269ac8d6b2d5d6eab..878c214fd1ea8a530c83dff2abf5beca80116cc1 100644
--- a/go-push-node-server/src/main/java/com/gopush/nodeserver/devices/handlers/HandShakeHandler.java
+++ b/go-push-node-server/src/main/java/com/gopush/nodeserver/devices/handlers/HandShakeHandler.java
@@ -95,16 +95,16 @@ public class HandShakeHandler extends BatchProcessor