修改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 "";
}
Map<String, Long> params = new HashMap<>(1);
params.put("userId", this.userId);
Map<String, String> params = new HashMap<>(1);
params.put("token", this.token);
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.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);
}
}
/**