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。给特定会话的消息(非用户)

ExpressJS & Websocket & 会话共享

使用粘性会话和 websocket 进行扩展

Spring消息传递+安全如何通过websockets登录?

使用 spring 启用 WebSockets