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

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

Introduction

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

Prototype

boolean isOpen();

Source Link

Document

Return whether the connection is still open.

Usage

From source file:com.devicehive.messages.handler.WebSocketClientHandler.java

public static void sendMessage(JsonObject json, WebSocketSession session) {
    if (!session.isOpen()) {
        return;/*from ww w. j  av  a2 s  . co m*/
    }
    try {
        session.sendMessage(new TextMessage(json.toString()));
    } catch (IOException e) {
        logger.error("Exception while sending message", e);
    }
}

From source file:com.songjg.websocket.handler.SystemWebSocketHandler.java

@Override
public void handleTransportError(WebSocketSession wss, Throwable thrwbl) throws Exception {
    if (wss.isOpen()) {
        wss.close();/*  w  w w  .  ja v a 2 s.c  om*/
    }
    System.out.println("websocket connection closed......");
}

From source file:org.springframework.cloud.aws.sample.websocket.SendingTextWebSocketHandler.java

private void sendTestMessageToAllSessions(String payload) throws IOException {
    List<WebSocketSession> sessionsToRemove = new ArrayList<>();
    for (WebSocketSession session : this.sessions) {
        if (!session.isOpen()) {
            sessionsToRemove.add(session);
        }//from  w ww .j  a v  a 2s .c om
    }
    this.sessions.removeAll(sessionsToRemove);

    for (WebSocketSession session : this.sessions) {
        session.sendMessage(new TextMessage(payload));
    }
}

From source file:com.pubkit.platform.messaging.protocol.pkmp.PKMPOutBoundEventHandler.java

private void handleDisconnect(PKMPDisconnect pKMPDisconnect, WebSocketSession session) {
    if (session.isOpen()) {
        sendPayload(pKMPDisconnect, session);
    }// w w w .ja  v a2  s. c  om
    closeSession(session);
}

From source file:com.pubkit.platform.messaging.protocol.pkmp.PKMPOutBoundEventHandler.java

private void closeSession(WebSocketSession session) {
    if (!session.isOpen()) {
        return;/*from  ww  w  .jav  a 2s. c  o m*/
    }
    try {
        session.close(CloseStatus.NORMAL);
    } catch (IOException e) {
        LOG.error("Error closing the connection", e);
        // Can't do anything now!
    }
}

From source file:org.acruxsource.sandbox.spring.jmstows.websocket.ChatHandler.java

public void sendMessage(final ChatMessage message) throws IOException {
    logger.info("Sending message to all participants");

    for (WebSocketSession session : sessions) {
        if (session.isOpen()) {
            DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_PATTERN);
            JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
            jsonObjectBuilder.add("name", message.getName());
            jsonObjectBuilder.add("message", message.getMessage());
            jsonObjectBuilder.add("date", dateFormat.format(message.getDate()));
            session.sendMessage(new TextMessage(jsonObjectBuilder.build().toString()));
        } else {/* w  w w .  ja va 2  s . c  om*/
            sessions.remove(session);
        }
    }
}

From source file:com.devicehive.websockets.util.SessionMonitor.java

@Scheduled(cron = "0/30 * * * * *")
public synchronized void ping() {
    try {//from   w w  w  . j a  va  2s. c  o  m
        for (WebSocketSession session : sessionMap.values()) {
            if (session.isOpen()) {
                logger.debug("Pinging session {}", session.getId());
                session.sendMessage(new PingMessage());
            } else {
                logger.debug("Session {} is closed.", session.getId());
                sessionMap.remove(session.getId());
            }
        }
    } catch (IOException e) {
        logger.error("Exception while ping session");
    }
}

From source file:com.devicehive.websockets.util.SessionMonitor.java

public WebSocketSession getSession(String sessionId) {
    WebSocketSession session = sessionMap.get(sessionId);
    return session != null && session.isOpen() ? session : null;
}

From source file:br.com.altamira.monitoramento.controller.SendingTextWebSocketHandler.java

private void sendTestMessageToAllSessions(String payload) throws IOException {
    List<WebSocketSession> sessionsToRemove = new ArrayList<>();
    this.sessions.stream().filter((session) -> (!session.isOpen())).forEach((session) -> {
        sessionsToRemove.add(session);/*w ww.j  a  va2  s. c o m*/
    });
    this.sessions.removeAll(sessionsToRemove);

    for (WebSocketSession session : this.sessions) {
        session.sendMessage(new TextMessage(payload));
    }
}

From source file:com.github.mrstampy.gameboot.otp.websocket.OtpEncryptedWebSocketHandler.java

/**
 * Validates that the clear channel exists. Override to provide additional
 * validation.//from  ww w  .j ava2s  .  c o  m
 *
 * @param session
 *          the session
 * @param message
 *          the message
 * @return true, if successful
 * @throws Exception
 *           the exception
 */
protected boolean validateChannel(WebSocketSession session, OtpKeyRequest message) throws Exception {
    if (message.getKeyFunction() == null) {
        log.error("No key function, closing channel");
        session.close();
        return false;
    }

    switch (message.getKeyFunction()) {
    case NEW:
        break;
    default:
        log.error("Cannot process {}, closing OTP New Key session {}", message, session);
        session.close();
        return false;
    }

    Long systemId = message.getOtpSystemId();
    if (systemId == null) {
        log.error("System id missing from {}, disconnecting {}", message, session);

        session.close();
        return false;
    }

    SystemIdKey sik = new SystemIdKey(systemId);

    WebSocketSession clearChannel = registry.get(sik);
    if (clearChannel == null || !clearChannel.isOpen()) {
        log.error("No clear channel for {}, from encrypted channel {}, disconnecting", systemId,
                session.getRemoteAddress());
        session.close();
        return false;
    }

    return true;
}