|
|
@@ -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);
|
|
|
}
|
|
|
}
|