小编use*_*161的帖子

在WebSocketHandler中访问HTTP会话(Spring-websocket)

亲爱的,我正在尝试在我的 WebSocketHandler 中获取 HTTPSession。当我使用“javax.websocket-api”时我可以成功完成此操作,但我现在使用“Spring-Websocket”。

配置:

@ConditionalOnWebApplication
@Configuration
@EnableWebSocket
public class WebSocketConfigurator implements WebSocketConfigurer {

    @Autowired
    private ApplicationContext context;

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        MyEndpoint endpoint = context.getBean(MyEndpoint.class);
        registry.addHandler(endpoint, "/signaling");
    }
}
Run Code Online (Sandbox Code Playgroud)

当连接建立时:

    @Component
    public class MyEndpoint implements WebSocketHandler {

        private WebSocketSession wsSession;

        @Override
        public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception {
            this.wsSession = webSocketSession;
            // need to get the HTTP SESSION HERE        
            log.info("Opening: " + webSocketSession.getId());
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在这是我如何使用 'javax.websocket-api' 执行此操作的示例:

配置:

@ServerEndpoint(value = "/signaling", //
        decoders = MessageDecoder.class, // …
Run Code Online (Sandbox Code Playgroud)

java httpsession websocket spring-websocket

2
推荐指数
1
解决办法
3665
查看次数

标签 统计

httpsession ×1

java ×1

spring-websocket ×1

websocket ×1