浏览代码

叫号socket服务

lighter 8 月之前
父节点
当前提交
e051150b41

+ 27 - 4
thyy-socket/src/main/java/org/thyy/socket/service/callnumber/HelpDeskScreen.java

@@ -1,37 +1,60 @@
 package org.thyy.socket.service.callnumber;
 
 import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.web.socket.WebSocketSession;
 import org.thyy.socket.service.Business;
 
 import java.util.concurrent.ConcurrentHashMap;
 
+@Slf4j
 @Component
 public class HelpDeskScreen implements Business {
-    private ConcurrentHashMap<String, WebSocketSession> sessionMap = new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<String, WebSocketSession> sessionContainer = new ConcurrentHashMap<>();
 
     @Override
     public void onOpen(WebSocketSession session, String sid) {
-        ScreenSession.instance().newConnection(sessionMap, sid, session);
+        ScreenSession.instance().newConnection(sessionContainer, sid, session);
+        log.info("有新连接加入:{},当前在线人数为:{}", sid, sessionContainer.size());
     }
 
     @Override
     public void onClose(WebSocketSession session, String sid) {
-        sessionMap.remove(sid, session);
+        sessionContainer.remove(sid, session);
+        log.info("有一连接关闭:{},当前在线人数为:{}", sid, sessionContainer.size());
     }
 
     @Override
     public void onMessage(WebSocketSession session, String sid, String data) {
+        log.info("有{}发送的新消息:{}", sid, data);
         if (data.equals("heart-beat")) {
             Business.send(session, data);
         }
     }
 
+    /**
+     * POST http://localhost:20922/thyy/api/socket/send/helpDeskScreen
+     * Content-Type: application/json
+     * {
+     *   "sid": "01897",
+     *   "msg": {
+     *     "action": 1,
+     *     "deptName": "骨科",
+     *     "serialNo": 1952155,
+     *     "speechUrl": "http://172.16.32.160:8080/resource/voice/1952155.mp3",
+     *     "name": "龙一如",
+     *     "blurName": "龙*如",
+     *     "fzNo": 12,
+     *     "roomNo": 1
+     *   }
+     * }
+     * */
     @Override
     public void sendMessage(JSONObject json) {
         String sid = json.getString("sid");
-        WebSocketSession session = sessionMap.get(sid);
+        WebSocketSession session = sessionContainer.get(sid);
         ScreenSession.instance().sendMessage(json, session);
+        log.info("向分诊台发送消息:{}", json);
     }
 }

+ 10 - 4
thyy-socket/src/main/java/org/thyy/socket/service/callnumber/RoomScreen.java

@@ -1,28 +1,33 @@
 package org.thyy.socket.service.callnumber;
 
 import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.web.socket.WebSocketSession;
 import org.thyy.socket.service.Business;
 
 import java.util.concurrent.ConcurrentHashMap;
 
+@Slf4j
 @Component
 public class RoomScreen implements Business {
-    private final ConcurrentHashMap<String, WebSocketSession> sessionMap = new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<String, WebSocketSession> sessionContainer = new ConcurrentHashMap<>();
 
     @Override
     public void onOpen(WebSocketSession session, String sid) {
-        ScreenSession.instance().newConnection(sessionMap, sid, session);
+        ScreenSession.instance().newConnection(sessionContainer, sid, session);
+        log.info("有新连接加入:{},当前在线人数为:{}", sid, sessionContainer.size());
     }
 
     @Override
     public void onClose(WebSocketSession session, String sid) {
-        sessionMap.remove(sid, session);
+        sessionContainer.remove(sid, session);
+        log.info("有一连接关闭:{},当前在线人数为:{}", sid, sessionContainer.size());
     }
 
     @Override
     public void onMessage(WebSocketSession session, String sid, String data) {
+        log.info("有{}发送的新消息:{}", sid, data);
         if (data.equals("heart-beat")) {
             Business.send(session, data);
         }
@@ -31,7 +36,8 @@ public class RoomScreen implements Business {
     @Override
     public void sendMessage(JSONObject json) {
         String sid = json.getString("sid");
-        WebSocketSession session = sessionMap.get(sid);
+        WebSocketSession session = sessionContainer.get(sid);
         ScreenSession.instance().sendMessage(json, session);
+        log.info("向诊室小屏发送消息:{}", json);
     }
 }