From 4921a9ecc6e25b3c51c94c8953790efa4e64dcb3 Mon Sep 17 00:00:00 2001 From: rays <1615175118@qq.com> Date: Tue, 22 Jun 2021 15:57:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9WebSocket=E8=8E=B7=E5=8F=96us?= =?UTF-8?q?erId=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/auth/api/pojo/login/LoginUser.java | 4 ++-- .../websocket/server/WebSocketServer.java | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java index 23563947c..de9a1af60 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java @@ -171,8 +171,8 @@ public class LoginUser implements Serializable { return ""; } - Map params = new HashMap<>(1); - params.put("userId", this.userId); + Map params = new HashMap<>(1); + params.put("token", this.token); return StrUtil.format(this.wsUrl, params); } diff --git a/kernel-d-socket/socket-business-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/business/websocket/server/WebSocketServer.java b/kernel-d-socket/socket-business-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/business/websocket/server/WebSocketServer.java index 16a73b90c..fa3d627ae 100644 --- a/kernel-d-socket/socket-business-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/business/websocket/server/WebSocketServer.java +++ b/kernel-d-socket/socket-business-websocket/src/main/java/cn/stylefeng/roses/kernel/socket/business/websocket/server/WebSocketServer.java @@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.socket.business.websocket.server; import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext; +import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload; import cn.stylefeng.roses.kernel.socket.api.enums.ClientMessageTypeEnum; import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum; import cn.stylefeng.roses.kernel.socket.api.message.SocketMsgCallbackInterface; @@ -17,6 +18,7 @@ import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; +import java.io.IOException; /** * 消息监听处理器 @@ -25,7 +27,7 @@ import javax.websocket.server.ServerEndpoint; * @date 2021/6/1 下午2:35 */ @Slf4j -@ServerEndpoint(value = "/webSocket/{userId}") +@ServerEndpoint(value = "/webSocket/{token}") @Component public class WebSocketServer { @@ -39,7 +41,20 @@ public class WebSocketServer { * @date 2021/6/21 下午5:14 **/ @OnOpen - public void onOpen(Session session, @PathParam("userId") String userId) { + public void onOpen(Session session, @PathParam("token") String token) { + String userId = null; + try { + // 解析用户信息 + DefaultJwtPayload defaultPayload = JwtContext.me().getDefaultPayload(token); + userId = defaultPayload.getUserId().toString(); + } catch (io.jsonwebtoken.JwtException e) { + try { + session.close(); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } + // 操作api包装 GunsSocketOperator GunsSocketOperator = new GunsSocketOperator(session); @@ -65,6 +80,7 @@ public class WebSocketServer { // 回复消息 GunsSocketOperator.writeAndFlush(replyMsg); } + } /**