0

我使用 Spring Websocket (正是我的应用程序的这个示例模板),如果我在客户端调用断开连接,有时我会在底部得到这个异常:

$scope.$on('$destroy', function() { // invoked if page is leaved 
        if (vm.stompClient != null) {
            vm.stompClient.unsubscribe();
            vm.stompClient.disconnect(function() {
                console.log("Disconnected in chat.controller.js#destroy");
            });
        }
    });

有谁知道我可以做些什么来防止这种异常。它对功能没有任何影响 - 一切仍在工作,但它不是干净的代码,因此我会解决这个问题 - 感谢您的帮助!

java.lang.IllegalStateException:在org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.sendMessage( AbstractSockJsSession.java:159) at org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator.tryFlushMessageBuffer(ConcurrentWebSocketSessionDecorator.java:126) at org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator.sendMessage(ConcurrentWebSocketSessionDecorator.java:99) at org .springframework.web.socket.messaging.StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:368) 在 org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:337) 在 org.springframework。messing.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:135) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang .Thread.run(未知来源)

[编辑]

我还发现了这两个日志条目:

2015-11-08 07:47:53.642 调试 13452 --- [io-8080-exec-10] swshLoggingWebSocketHandlerDecorator:WebSocketServerSockJsSession[id=kludit93]以 CloseStatus[code=1000,reason=null] 2015-11-08 07关闭:47:53.643 调试 13452 --- [io-8080-exec-10] oswsmSubProtocolWebSocketHandler : 清除会话 kludit93 2015-11-08 07:47:53.646 调试 13452 --- [tboundChannel-4] oswsmSubProtocolWebSocketHandler : 没有会话 GenericMessage [有效负载 = 字节 [0],标头 = {simpMessageType = DISCONNECT_ACK,simpSessionId = kludit93}] 2015-11-08 07:47:53.659 调试 13452 --- [tboundChannel-3] oswsmStompSubProtocolHandler:无法在会话中向客户端发送 WebSocket 消息克鲁迪特93

所以这对我来说意味着首先关闭会话,然后尝试通过这个关闭的会话向客户端发送一些东西。有没有可能阻止这种行为?谢谢!

4

0 回答 0