Example usage for org.springframework.web.socket WebSocketSession close

List of usage examples for org.springframework.web.socket WebSocketSession close

Introduction

In this page you can find the example usage for org.springframework.web.socket WebSocketSession close.

Prototype

@Override
void close() throws IOException;

Source Link

Document

Close the WebSocket connection with status 1000, i.e.

Usage

From source file:cn.com.inhand.devicenetworks.ap.websocket.WSDNAccessPoint.java

@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {

    System.out/*from   w ww .  jav  a 2 s.c o  m*/
            .println("Debug in WSDNAccessPoint.java [Ln:81] : WebSocketSession session=" + session.toString());

    super.handleTextMessage(session, message);
    TextMessage returnMessage = new TextMessage(message.getPayload() + " received at server");
    //session.sendMessage(returnMessage);
    System.out.println("Debug in WSDNAccessPoint.java [Ln:57] : WebSocketSession recv:" + message.getPayload());

    try {
        String string = message.getPayload();
        if (string == null || string.trim().equals("") || string.equals("undefined")) {
            System.out.println("Debug in WSDNAccessPoint.java [Ln:64] : WebSocketSession recv:null msg");

            return;
        }
        DNMessage msg = parser.unwrap(message.getPayload().getBytes());

        WSDNSession wsdnsn = this.cinfo.getWsdnsn(session.toString());

        if (wsdnsn == null) {
            if (msg.getName().equals("login")) {
                try {
                    this.onLogin(msg, session, wsdnsn);
                } catch (PacketException pe) {
                    //
                    Logger.getLogger(WSDNAccessPoint.class.getName()).warning(
                            "Failed to Login from " + session.getRemoteAddress() + ":" + pe.toString());
                    this.close(session);
                }
            } else {
                //?login
                Logger.getLogger(WSDNAccessPoint.class.getName()).warning(
                        "Illegal connection from + " + session.getRemoteAddress() + ", the msg:" + string);
                this.close(session);
            }
        } else if (!wsdnsn.isIsLogin()) {
            wsdnsn.setSession(session);
            try {

                this.onLogin(msg, session, wsdnsn);
            } catch (PacketException pe) {
                //
                Logger.getLogger(WSDNAccessPoint.class.getName())
                        .warning("Failed to Login from " + session.getRemoteAddress() + ":" + pe.toString());
                this.close(session);
            }
        } else {
            //?

            if (msg.getName().equalsIgnoreCase("heartbeat") && msg.getType() == 0) {
                this.onHeartbeat(msg, session, wsdnsn);

                this.updateStatus(2, wsdnsn);
            } else if (msg.getName().equalsIgnoreCase("logout")) {//&& msg.getType() == 0) {
                this.onLogout(msg, session, wsdnsn);
                session.close();
            } else if (msg.getType() == 1) {
                this.onAck(msg, session, wsdnsn);
            } else {
                this.onUnkownMsg(msg, session, wsdnsn);
                Logger.getLogger(WSDNAccessPoint.class.getName())
                        .warning("Unsupported msg from " + session.getRemoteAddress() + ":" + msg.toString());
                //this.close(session);
            }

        }

    } catch (PacketException ex) {
        Logger.getLogger(WSv1Processor.class.getName()).log(Level.SEVERE, "while handling a text message", ex);
    }

}

From source file:org.springframework.boot.samples.websocket.client.SimpleClientWebSocketHandler.java

@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
    this.logger.info("Received: " + message + " (" + this.latch.getCount() + ")");
    session.close();
    this.latch.countDown();
}

From source file:org.springframework.web.socket.sockjs.client.AbstractSockJsIntegrationTests.java

@Test(timeout = 5000)
public void fallbackAfterConnectTimeout() throws Exception {
    TestClientHandler clientHandler = new TestClientHandler();
    this.testFilter.sleepDelayMap.put("/xhr_streaming", 10000L);
    this.testFilter.sendErrorMap.put("/xhr_streaming", 503);
    initSockJsClient(createXhrTransport());
    this.sockJsClient.setConnectTimeoutScheduler(this.wac.getBean(ThreadPoolTaskScheduler.class));
    WebSocketSession clientSession = sockJsClient.doHandshake(clientHandler, this.baseUrl + "/echo").get();
    assertEquals("Fallback didn't occur", XhrClientSockJsSession.class, clientSession.getClass());
    TextMessage message = new TextMessage("message1");
    clientSession.sendMessage(message);/*from  w w  w . j  ava  2  s . c o  m*/
    clientHandler.awaitMessage(message, 5000);
    clientSession.close();
}

From source file:org.springframework.web.socket.sockjs.client.AbstractSockJsIntegrationTests.java

private void testEcho(int messageCount, Transport transport, WebSocketHttpHeaders headers) throws Exception {
    List<TextMessage> messages = new ArrayList<>();
    for (int i = 0; i < messageCount; i++) {
        messages.add(new TextMessage("m" + i));
    }//from  w  ww. ja va  2 s. c o m
    TestClientHandler handler = new TestClientHandler();
    initSockJsClient(transport);
    URI url = new URI(this.baseUrl + "/echo");
    WebSocketSession session = this.sockJsClient.doHandshake(handler, headers, url).get();
    for (TextMessage message : messages) {
        session.sendMessage(message);
    }
    handler.awaitMessageCount(messageCount, 5000);
    for (TextMessage message : messages) {
        assertTrue("Message not received: " + message, handler.receivedMessages.remove(message));
    }
    assertEquals("Remaining messages: " + handler.receivedMessages, 0, handler.receivedMessages.size());
    session.close();
}