修改WebSocket获取userId的方式

pull/22/head
rays 2021-06-22 15:57:38 +08:00
parent 439eab3f21
commit 4921a9ecc6
2 changed files with 20 additions and 4 deletions

View File

@ -171,8 +171,8 @@ public class LoginUser implements Serializable {
return ""; return "";
} }
Map<String, Long> params = new HashMap<>(1); Map<String, String> params = new HashMap<>(1);
params.put("userId", this.userId); params.put("token", this.token);
return StrUtil.format(this.wsUrl, params); return StrUtil.format(this.wsUrl, params);
} }

View File

@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.socket.business.websocket.server;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext; 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.ClientMessageTypeEnum;
import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum; import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum;
import cn.stylefeng.roses.kernel.socket.api.message.SocketMsgCallbackInterface; import cn.stylefeng.roses.kernel.socket.api.message.SocketMsgCallbackInterface;
@ -17,6 +18,7 @@ import org.springframework.stereotype.Component;
import javax.websocket.*; import javax.websocket.*;
import javax.websocket.server.PathParam; import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint; import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
/** /**
* *
@ -25,7 +27,7 @@ import javax.websocket.server.ServerEndpoint;
* @date 2021/6/1 2:35 * @date 2021/6/1 2:35
*/ */
@Slf4j @Slf4j
@ServerEndpoint(value = "/webSocket/{userId}") @ServerEndpoint(value = "/webSocket/{token}")
@Component @Component
public class WebSocketServer { public class WebSocketServer {
@ -39,7 +41,20 @@ public class WebSocketServer {
* @date 2021/6/21 5:14 * @date 2021/6/21 5:14
**/ **/
@OnOpen @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包装 // 操作api包装
GunsSocketOperator GunsSocketOperator = new GunsSocketOperator(session); GunsSocketOperator GunsSocketOperator = new GunsSocketOperator(session);
@ -65,6 +80,7 @@ public class WebSocketServer {
// 回复消息 // 回复消息
GunsSocketOperator.writeAndFlush(replyMsg); GunsSocketOperator.writeAndFlush(replyMsg);
} }
} }
/** /**