Spring websocket会话开始时间
Posted
技术标签:
【中文标题】Spring websocket会话开始时间【英文标题】:Spring websocket session start time 【发布时间】:2017-01-30 15:08:13 【问题描述】:是否有任何内置属性可以获取 Spring WebSocketSession
的开始时间?开始时间是指会话开始的时间或 websocket 连接打开的时间?
更新:
我有一个 TestWebSocketService,我在其中“存储”了 websocket 会话。在这里我想获取有关会话的信息,例如会话开始时间(连接开始时间)等等。
WebSocketHandler:
@Component
public class TestWebsocketHandler extends TextWebSocketHandler
private final TestWebSocketService testWebSocketService;
@Autowired
public TestWebsocketHandler(TestWebSocketService testWebSocketService)
this.testWebSocketService = testWebSocketService;
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception
this.testWebSocketService.setSession(session);
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage requestMessage) throws Exception
...
WebSocket服务:
@Component
public class TestWebSocketServiceImpl implements TestWebSocketService
private WebSocketSession session;
public TestWebSocketServiceImpl()
@Override
public void setSession(WebSocketSession session)
this.session = session;
【问题讨论】:
你可以使用HttpSession#getCreationTime()
docs.oracle.com/javaee/7/api/javax/servlet/http/…获取它
@redflar3 如何获取 HttpSession?
你能举一些你想要获取会话开始时间的代码示例
【参考方案1】:
我在这里找到了maintain session during websocket connection 的示例。希望这会有所帮助
【讨论】:
以上是关于Spring websocket会话开始时间的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SockJs 通过 STOMP Java 客户端验证 Spring 非 Web Websocket?
弹簧+WebSocket+STOMP。给特定会话的消息(非用户)