我正在尝试使用listener捕获SessionDisconnectEvent
事件:
@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
从哪里获取会话或主体?
发布于 2017-07-21 10:05:37
试着这样做。
public void onApplicationEvent(SessionDisconnectEvent event) {
StompHeaderAccessor sha = StompHeaderAccessor.wrap(event.getMessage());
log.info("Disconnect event [sessionId: " + sha.getSessionId() + " : close status" + event.getCloseStatus() + "]");
}
https://stackoverflow.com/questions/38893827
复制相似问题