首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spring websocket的SessionDisconnectEvent中使用sessionId

如何在Spring websocket的SessionDisconnectEvent中使用sessionId
EN

Stack Overflow用户
提问于 2016-08-11 18:30:55
回答 1查看 1.3K关注 0票数 4

我正在尝试使用listener捕获SessionDisconnectEvent事件:

代码语言:javascript
运行
复制
    @Component
public class WebSocketDisconnectListener implements ApplicationListener {

    @Override
    @EventListener
    public void onApplicationEvent(SessionDisconnectEvent event) {
        Principal principal = event.getUser();
        logger.info("websocket disconnected {}, user {}", event, principal);
        if (principal != null) {
        }
    }
}

但是主体总是空的。所以我发现SessionDisconnectEvent有一个名为sessionId的事件,但是如何使用sessionId

从哪里获取会话或主体?

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 10:05:37

试着这样做。

代码语言:javascript
运行
复制
public void onApplicationEvent(SessionDisconnectEvent event) {
        StompHeaderAccessor sha = StompHeaderAccessor.wrap(event.getMessage());
        log.info("Disconnect event [sessionId: " + sha.getSessionId() + " : close status" + event.getCloseStatus() + "]");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38893827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档