0
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("/agent-sendstatus")
        public void testmethod()
        {
            //How do i get ServletContext here to further implement solution?
            template.convertAndSend("/topic/agent-sendstatus","bcd");
        }

请建议。我在控制器中使用 SimpMessageHeaderAccessor 获得会话,但我也需要 ServletContext。春天有什么办法吗?

4

1 回答 1

1

当您升级到 WebSocket 时,通信中不涉及 HTTP,您拥有 HTTP 的唯一地方是在握手期间。您可以实现 aHandshakeInterceptor以获取 ServletContext 并将任何参数公开给 WebSocket 会话,因此您可以使用 HeaderAccessor 在消息处理程序方法中获取它们。查看HttpSessionHandshakeInterceptor示例。

于 2014-09-25T09:04:37.197 回答