在春季访问Websocket / Stomp会话ID

时间:2019-10-18 00:56:26

标签: spring websocket spring-websocket

我使用Logback编写了一个自定义记录器,并且需要获取Websocket会话ID来附加日志消息。但是我不知道如何像下面这样获得http会话ID:

 import ch.qos.logback.classic.pattern.ClassicConverter;
 import ch.qos.logback.classic.spi.ILoggingEvent;

public class WebSocketSessionConverter extends ClassicConverter {
 @Override
 public String convert(ILoggingEvent event) { 

 //this returns null
 RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
 if (attrs != null) {
  return attrs.getSessionId();
 }
 return "NO_STOMP_SESSION";
 }
}

顺便说一句,是否像HTTP请求一样在Websocket的一个线程中从头到尾处理一条消息?(我认为应该...)是否有使用ThreadLocal的机制?或获取会话ID的方法? 谢谢。

0 个答案:

没有答案
相关问题