|
@@ -1,6 +1,8 @@
|
|
|
package cn.reghao.bnt.web.ws.handler;
|
|
package cn.reghao.bnt.web.ws.handler;
|
|
|
|
|
|
|
|
|
|
+import cn.reghao.bnt.web.ws.SessionManagerFront;
|
|
|
import cn.reghao.bnt.web.ws.WsSender;
|
|
import cn.reghao.bnt.web.ws.WsSender;
|
|
|
|
|
+import cn.reghao.bnt.web.ws.event.DockerOpsService;
|
|
|
import cn.reghao.jutil.jdk.serializer.JdkSerializer;
|
|
import cn.reghao.jutil.jdk.serializer.JdkSerializer;
|
|
|
import cn.reghao.jutil.jdk.serializer.JsonConverter;
|
|
import cn.reghao.jutil.jdk.serializer.JsonConverter;
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonObject;
|
|
@@ -18,20 +20,25 @@ import java.util.*;
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@Component("frontendHander")
|
|
@Component("frontendHander")
|
|
|
public class FrontendHandler implements WebSocketHandler {
|
|
public class FrontendHandler implements WebSocketHandler {
|
|
|
- private WsSender wsSender;
|
|
|
|
|
|
|
+ private final SessionManagerFront sessionManagerFront;
|
|
|
|
|
+ private final DockerOpsService dockerOpsService;
|
|
|
|
|
|
|
|
- public FrontendHandler(WsSender wsSender) {
|
|
|
|
|
- this.wsSender = wsSender;
|
|
|
|
|
|
|
+ public FrontendHandler(SessionManagerFront sessionManagerFront, DockerOpsService dockerOpsService) {
|
|
|
|
|
+ this.sessionManagerFront = sessionManagerFront;
|
|
|
|
|
+ this.dockerOpsService = dockerOpsService;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void afterConnectionEstablished(WebSocketSession webSocketSession) throws IOException {
|
|
public void afterConnectionEstablished(WebSocketSession webSocketSession) throws IOException {
|
|
|
String sessionId = webSocketSession.getId();
|
|
String sessionId = webSocketSession.getId();
|
|
|
String query = webSocketSession.getUri().getQuery();
|
|
String query = webSocketSession.getUri().getQuery();
|
|
|
|
|
+ sessionManagerFront.addSession(sessionId, webSocketSession);
|
|
|
log.info("WebSocket 建立连接");
|
|
log.info("WebSocket 建立连接");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void removeSession(WebSocketSession webSocketSession) {
|
|
private void removeSession(WebSocketSession webSocketSession) {
|
|
|
|
|
+ String sessionId = webSocketSession.getId();
|
|
|
|
|
+ sessionManagerFront.removeSession(sessionId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -42,17 +49,9 @@ public class FrontendHandler implements WebSocketHandler {
|
|
|
log.info("接收到 WebSocket 文本消息");
|
|
log.info("接收到 WebSocket 文本消息");
|
|
|
String jsonPayload = (String) webSocketMessage.getPayload();
|
|
String jsonPayload = (String) webSocketMessage.getPayload();
|
|
|
JsonObject jsonObject = JsonConverter.jsonToJsonElement(jsonPayload).getAsJsonObject();
|
|
JsonObject jsonObject = JsonConverter.jsonToJsonElement(jsonPayload).getAsJsonObject();
|
|
|
|
|
+ String ops = jsonObject.get("ops").getAsString();
|
|
|
String machineId = jsonObject.get("machineId").getAsString();
|
|
String machineId = jsonObject.get("machineId").getAsString();
|
|
|
-
|
|
|
|
|
- wsSender.send(machineId, new Object());
|
|
|
|
|
- List<String> list = new ArrayList<>();
|
|
|
|
|
- list.add("aaa");
|
|
|
|
|
- list.add("bbb");
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
|
- map.put("type", "1");
|
|
|
|
|
- map.put("result", list);
|
|
|
|
|
- TextMessage textMessage = new TextMessage(JsonConverter.objectToJson(map));
|
|
|
|
|
- webSocketSession.sendMessage(textMessage);
|
|
|
|
|
|
|
+ dockerOpsService.sendDockerOps(ops, machineId);
|
|
|
} else if (webSocketMessage instanceof BinaryMessage) {
|
|
} else if (webSocketMessage instanceof BinaryMessage) {
|
|
|
log.info("接收到 WebSocket 二进制消息");
|
|
log.info("接收到 WebSocket 二进制消息");
|
|
|
} else if (webSocketMessage instanceof PingMessage) {
|
|
} else if (webSocketMessage instanceof PingMessage) {
|