wangwei 5 年之前
父節點
當前提交
738ce13eb8
共有 1 個文件被更改,包括 9 次插入8 次删除
  1. 9 8
      src/main/java/cn/com/qmth/examcloud/ws/starter/core/WebSocketServerEndpoint.java

+ 9 - 8
src/main/java/cn/com/qmth/examcloud/ws/starter/core/WebSocketServerEndpoint.java

@@ -4,6 +4,7 @@ import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.websocket.OnClose;
 import javax.websocket.OnError;
@@ -42,6 +43,8 @@ public class WebSocketServerEndpoint {
 
 	private static RedisClient redisClient;
 
+	private String sessionId;
+
 	private static RedisClient getRedisClient() {
 		if (null != redisClient) {
 			return redisClient;
@@ -52,8 +55,9 @@ public class WebSocketServerEndpoint {
 
 	@OnOpen
 	public void onOpen(Session session, @PathParam("path") String path) {
-		String sessionId = session.toString().substring(session.getClass().getName().length() + 1)
-				.toUpperCase();
+
+		sessionId = UUID.randomUUID().toString().replace("-", "");
+
 		ThreadContext.put("TRACE_ID", sessionId);
 
 		if (WS_LOG.isDebugEnabled()) {
@@ -159,8 +163,7 @@ public class WebSocketServerEndpoint {
 
 	@OnClose
 	public void onClose(Session session, @PathParam("path") String path) {
-		String sessionId = session.toString().substring(session.getClass().getName().length() + 1)
-				.toUpperCase();
+
 		ThreadContext.put("TRACE_ID", sessionId);
 
 		WS_LOG.debug("[onClose]. path=" + path);
@@ -169,8 +172,7 @@ public class WebSocketServerEndpoint {
 
 	@OnMessage
 	public void onMessage(Session session, @PathParam("path") String path, String message) {
-		String sessionId = session.toString().substring(session.getClass().getName().length() + 1)
-				.toUpperCase();
+
 		ThreadContext.put("TRACE_ID", sessionId);
 
 		WS_LOG.debug("[onMessage]. path=" + path + ". message=" + message);
@@ -258,8 +260,7 @@ public class WebSocketServerEndpoint {
 
 	@OnError
 	public void onError(Session session, @PathParam("path") String path, Throwable t) {
-		String sessionId = session.toString().substring(session.getClass().getName().length() + 1)
-				.toUpperCase();
+
 		ThreadContext.put("TRACE_ID", sessionId);
 
 		WS_LOG.error("[onError]. path=" + path, t);