gpt4 book ai didi

session - 使用 Websockets 时无法在 Spring Controller 中获取 Session

转载 作者:行者123 更新时间:2023-12-02 15:20:51 37 4
gpt4 key购买 nike

我正在将 Websockets SockJS 与 Spring MVC 框架一起使用。我尝试了工作正常的股票行情代码示例,但现在我想在我的 Controller 中获取 session ,但我找不到出路。

Client Code:
$scope.socket = new SockJS("ws/ws");
$scope.stompClient = Stomp.over($scope.socket);
$scope.stompClient.connect("guest", "guest",connectCallback, errorCallback);

//in connectCallback
$scope.stompClient.subscribe('/topic/agent-sendstatus', showScreenPop);

Java Code:
@MessageMapping("/topic/agent-sendstatus")
public void testmethod()
{
//How do i get Session here to further implement solution?

template.convertAndSend("/topic/agent-sendstatus","bcd");
}

Please suggest.

最佳答案

如果您指的是 WebSocket session ,Spring 4.1 允许您在传入客户端消息的 header 中获取 session 属性,这些属性可以通过 SimpMessageHeaderAccessor 访问。

@MessageMapping("/topic/agent-sendstatus")
public void testmethod(SimpMessageHeaderAccessor headerAccessor) {
String sessionId = headerAccessor.getSessionId(); // Session ID
Map<String, Object> attrs = headerAccessor.getSessionAttributes(); // Session Attributes
...
}

关于session - 使用 Websockets 时无法在 Spring Controller 中获取 Session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25842009/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com