Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 为什么可以';在我的TextWebSocketHandler中的ConnectionClosed()之后,我不能得到调用函数吗?_Spring_Spring Websocket - Fatal编程技术网

Spring 为什么可以';在我的TextWebSocketHandler中的ConnectionClosed()之后,我不能得到调用函数吗?

Spring 为什么可以';在我的TextWebSocketHandler中的ConnectionClosed()之后,我不能得到调用函数吗?,spring,spring-websocket,Spring,Spring Websocket,在服务器端,我使用Spring websocket,握手如下: public class WebsocketEndPoint extends TextWebSocketHandler { @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { System.out.println

在服务器端,我使用Spring websocket,握手如下:

public class WebsocketEndPoint extends TextWebSocketHandler {

    @Override
    protected void handleTextMessage(WebSocketSession session,
            TextMessage message) throws Exception {
        System.out.println("start to translate data!");

        super.handleTextMessage(session, message);
        for (int i = 0; i <= 1000; i++) {
            session.sendMessage(new TextMessage("push message " + i));
            Thread.sleep(2000);
        }
        session.sendMessage(message);
    }

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        System.out.println("Connection Established!");
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        System.out.println("Connection Closed!");
    }
}
<mvc:default-servlet-handler/>


<bean id="websocket" class="com.yyp.mvc.controller.WebsocketEndPoint" />
<websocket:handlers>
    <websocket:mapping path="/websocket" handler="websocket" />
    <websocket:handshake-interceptors>
        <bean class="com.yyp.mvc.controller.HandshakeInterceptor" />
    </websocket:handshake-interceptors>
</websocket:handlers>
<!DOCTYPE html>

<html>
<head lang="en">
  <meta charset="UTF-8">
</head>
<body>
<button onclick="closeSocket()">stop socket</button>
<script>
  var  wsServer = 'ws://localhost:8080/websocket';
  var  websocket = new WebSocket(wsServer);
  websocket.onopen = function (evt) { onOpen(evt) };
  websocket.onclose = function (evt) { onClose(evt) };
  websocket.onmessage = function (evt) { onMessage(evt) };
  websocket.onerror = function (evt) { onError(evt) };
  function onOpen(evt) {
    console.log("Connected to WebSocket server.");
    websocket.send('hello');
  }
  function onClose(evt) {
    console.log("Disconnected");
  }
  function onMessage(evt) {
    console.log('Retrieved data from server: ' + evt.data);
  }
  function onError(evt) {
    console.log('Error occured: ' + evt.data);
  }
  function closeSocket (argument) {
    console.log("close socket");
    websocket.close();
    websocket=null;
  }
</script>

</body>
</html>
为什么单击“停止套接字”按钮后无法获取“连接关闭!”日志,或者如何处理来自客户端的连接关闭信息

before shakeHands
after shakeHands
Connection Established!
start to translate data!