From 8a2a463d46b3dce73015462c9f6a2a258dd25f5b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 25 二月 2022 11:40:11 +0800
Subject: [PATCH] 优化diamante
---
service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java | 38 +++++++++++++++++++-------------------
1 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java b/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
index 186124a..3db7852 100644
--- a/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
+++ b/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
@@ -5,14 +5,10 @@
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.stereotype.Component;
-import javax.websocket.OnClose;
-import javax.websocket.OnError;
-import javax.websocket.OnMessage;
-import javax.websocket.OnOpen;
-import javax.websocket.Session;
+import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@@ -26,7 +22,7 @@
* @Version 1.0
* add by wuxw 2020/6/5
**/
-@ServerEndpoint("/ws/message/{userId}")
+@ServerEndpoint("/ws/message/{userId}/{clientId}")
@Component
public class MessageWebsocket {
private final static Logger logger = LoggerFactory.getLogger(MessageWebsocket.class);
@@ -54,14 +50,17 @@
*/
private String userId = "";
+ private String clientId = "";
+
/**
* 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
*/
@OnOpen
- public void onOpen(Session session, @PathParam("userId") String userId) {
+ public void onOpen(Session session, @PathParam("userId") String userId, @PathParam("clientId") String clientId) {
this.session = session;
this.userId = userId;
+ this.clientId = clientId;
if (webSocketMap.containsKey(userId)) {
webSocketMap.remove(userId);
webSocketMap.put(userId, this);
@@ -74,12 +73,12 @@
}
- logger.debug("鐢ㄦ埛杩炴帴:" + userId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
+ logger.debug("鐢ㄦ埛杩炴帴:" + userId + ",瀹㈡埛绔細" + clientId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
try {
sendMessage("杩炴帴鎴愬姛");
} catch (IOException e) {
- logger.error("鐢ㄦ埛:" + userId + ",缃戠粶寮傚父!!!!!!");
+ logger.error("鐢ㄦ埛:" + userId + ",瀹㈡埛绔細" + clientId + ",缃戠粶寮傚父!!!!!!");
}
}
@@ -93,7 +92,7 @@
//浠巗et涓垹闄�
subOnlineCount();
}
- logger.info("鐢ㄦ埛閫�鍑�:" + userId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
+ logger.info("鐢ㄦ埛閫�鍑�:" + userId + ",瀹㈡埛绔細" + clientId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
}
/**
@@ -103,7 +102,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) throws IOException {
- logger.info("鐢ㄦ埛娑堟伅:" + userId + ",鎶ユ枃:" + message);
+ logger.info("鐢ㄦ埛娑堟伅:" + userId + ",瀹㈡埛绔細" + clientId + ",鎶ユ枃:" + message);
//鍙互缇ゅ彂娑堟伅
//娑堟伅淇濆瓨鍒版暟鎹簱銆乺edis
if (StringUtil.isEmpty(message)) {
@@ -120,9 +119,9 @@
WsDataDto wsDataDto = JSONObject.parseObject(message, WsDataDto.class);
- switch (wsDataDto.getCmd()){
+ switch (wsDataDto.getCmd()) {
case WsDataDto.CMD_PING:
- webSocketMap.get(userId).sendMessage(wsDataDto.toString());
+ //webSocketMap.get(userId).sendMessage(wsDataDto.toString());
break;
}
@@ -148,8 +147,8 @@
*/
@OnError
public void onError(Session session, Throwable error) {
- logger.error("鐢ㄦ埛閿欒:" + this.userId + ",鍘熷洜:" + error.getMessage());
- error.printStackTrace();
+ logger.error("鐢ㄦ埛閿欒:" + this.userId + ",瀹㈡埛绔細" + clientId + ",鍘熷洜:" + error.getMessage());
+ // error.printStackTrace();
}
/**
@@ -165,10 +164,11 @@
*/
public static void sendInfo(String message, String userId) throws IOException {
logger.info("鍙戦�佹秷鎭埌:" + userId + "锛屾姤鏂�:" + message);
-
+ if (!webSocketMap.containsKey(userId)) {
+ //瀹㈡埛绔湭杩炴帴
+ return;
+ }
webSocketMap.get(userId).sendMessage(message);
-
-
}
public static synchronized int getOnlineCount() {
--
Gitblit v1.8.0