java - 如何识别 Session 的所有者 - Spring-Boot Websockets
问题描述
我正在使用没有 Stomp 的 websockets。决定 USer WebSocketSession 属于谁的正确方法是什么?
在我的 WsConfig 中,我使用:
@Configuration
@EnableWebSocket
public class WebSocketServerConfiguration implements WebSocketConfigurer {
protected final CustomWebSocketHandler webSocketHandler;
@Autowired
public WebSocketServerConfiguration(CustomWebSocketHandler webSocketHandler) {
this.webSocketHandler = webSocketHandler;
}
@SuppressWarnings("NullableProblems")
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(webSocketHandler, "/ws")
.addInterceptors();
}
}
我的 WsHandler 目前是空的:
@Service
public class SplitBillWebSocketHandler extends TextWebSocketHandler {
@Override
public void handleTransportError(WebSocketSession session, Throwable throwable) throws Exception {
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
}
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
//determine User for session
User user = determineUser(session);
sessionStorage.add(user.getName(),session);
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage jsonTextMessage) throws Exception {
}
}
确定用户的方法是什么?或者这样做的最佳做法是什么?
我是否需要从客户端向 websocket URL 传递一些参数(据我所知这不是标准的),或者如何识别会话?
感谢帮助!
解决方案
推荐阅读
- python - 将 Pandas 数据框传递给 python 中的函数
- angular - 如何从路由器插座中的另一个组件更改角度组件的不透明度?
- python - 计算shell脚本中矩阵中沿行和列但不是对角线的连接非零的数量
- flutter - 我们可以在手机上通过 chrome 浏览器打开 Flutter Web 应用吗?
- react-native - VirtualizedLists 不应该嵌套在具有相同方向的普通 ScrollViews 中 - 改用另一个 VirtualizedList-backed 容器
- java - sbt compile play framework 应用错误
- jquery - jquery未处理的异常如何处理这个异常
- c++ - 我的 if 语句打印在我的 while 循环中的每个 if 语句上,无论它是否为假
- amazon-ec2 - 无法在资源 AWS::ECS::Service 上添加标签
- ajax - 通过 laravel 中的多选下拉列表过滤数据表