Example usage for org.springframework.web.socket TextMessage TextMessage

List of usage examples for org.springframework.web.socket TextMessage TextMessage

Introduction

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

Prototype

public TextMessage(byte[] payload) 

Source Link

Document

Create a new text WebSocket message from the given byte[].

Usage

From source file:ch.rasc.wampspring.pubsub.PubSubReplyAnnotationTest.java

@Test
public void testUnsubscribe6() throws InterruptedException, ExecutionException, IOException {
    CompletableFutureWebSocketHandler result1 = new CompletableFutureWebSocketHandler(this.jsonFactory);
    CompletableFutureWebSocketHandler result2 = new CompletableFutureWebSocketHandler(this.jsonFactory);

    try (WebSocketSession webSocketSession1 = startWebSocketSession(result1);
            WebSocketSession webSocketSession2 = startWebSocketSession(result2)) {

        webSocketSession1/*from  w ww.  j a va 2 s. co  m*/
                .sendMessage(new TextMessage(new SubscribeMessage("replyTo6").toJson(this.jsonFactory)));
        webSocketSession2
                .sendMessage(new TextMessage(new SubscribeMessage("replyTo6").toJson(this.jsonFactory)));

        UnsubscribeMessage unsubscribeMessage = new UnsubscribeMessage("incomingUnsub6");
        webSocketSession1.sendMessage(new TextMessage(unsubscribeMessage.toJson(this.jsonFactory)));

        EventMessage event = null;
        try {
            event = (EventMessage) result1.getWampMessage();
            Assert.fail("call has to timeout");
        } catch (Exception e) {
            assertThat(e).isInstanceOf(TimeoutException.class);
        }
        assertThat(event).isNull();

        try {
            event = (EventMessage) result2.getWampMessage();
            Assert.fail("call has to timeout");
        } catch (Exception e) {
            assertThat(e).isInstanceOf(TimeoutException.class);
        }
        assertThat(event).isNull();
    }
}

From source file:org.metis.sql.SqlJob.java

/**
 * Broadcasts a message to all the clients that are currently subscribed to
 * this SQL job// ww  w  .ja v a  2s  .  c om
 * 
 * @param message
 */
private void sendResponseMessage(List<Map<String, Object>> response) {
    TextMessage textMessage = null;
    try {
        // create a TextMessage to send back based on json response
        // object
        textMessage = new TextMessage(Utils.generateJson(response));
    } catch (Exception e) {
        LOG.error(getThreadName() + ":ERROR, caught this " + "Exception while trying to gen json message -  "
                + e.toString());
        LOG.error(getThreadName() + ": exception stack trace follows:");
        dumpStackTrace(e.getStackTrace());
        if (e.getCause() != null) {
            LOG.error(getThreadName() + ": Caused by " + e.getCause().toString());
            LOG.error(getThreadName() + ": causing exception stack trace follows:");
            dumpStackTrace(e.getCause().getStackTrace());
        }
        return;
    }

    // broadcast the message
    for (String key : getSocketSessions().keySet()) {
        WdsSocketSession session = getSocketSessions().get(key);
        if (session.isOpen()) {
            try {
                session.getSession().sendMessage(textMessage);
            } catch (Exception exc) {
                LOG.error(getThreadName() + ":ERROR, caught this "
                        + "Exception while trying to broadcast message - " + exc.toString());
                LOG.error(getThreadName() + ": exception stack trace follows:");
                dumpStackTrace(exc.getStackTrace());
                if (exc.getCause() != null) {
                    LOG.error(getThreadName() + ": Caused by " + exc.getCause().toString());
                    LOG.error(getThreadName() + ": causing exception stack trace follows:");
                    dumpStackTrace(exc.getCause().getStackTrace());
                }
                return;
            }
        }
    }
}

From source file:virnet.experiment.webSocket.hndler.MainSystemWebSocketHandler.java

/**
 * //  w  w  w  .  j  ava 2s .c  o m
 */
public void sendMessageo(String message) throws IOException {
    this.session.sendMessage(new TextMessage(message));
}

From source file:virnet.experiment.webSocket.hndler.MainSystemWebSocketHandler.java

public static synchronized void sendStatausToGroup(JSONObject jsonString, WebSocketSession webSS,
        String finalGroup) throws IOException {
    System.out.println("send");
    jsonString.put("ready", "true");
    System.out.println(jsonString.getString("ready"));
    jsonString.put("finalGroup", finalGroup);
    System.out.println(jsonString.getString("finalGroup"));
    System.out.println("before jump:");
    jsonString.put("userName", arrangeUserName.get(webSS));
    String mess = jsonString.toString();
    webSS.sendMessage(new TextMessage(mess));
}

From source file:virnet.experiment.webSocket.hndler.MainSystemWebSocketHandler.java

public void sendToGroup(WebSocketSession wss, JSONObject jsonString) {

    String groupid = userMap.get(wss);
    String mess = jsonString.toString();
    System.out.println(groupid);//from  w w w . java  2s  .c  o m

    for (WebSocketSession user : expUsers) {
        try {
            if (user.isOpen() && (userMap.get(user).equals(groupid))) {
                user.sendMessage(new TextMessage(mess));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

From source file:virnet.experiment.webSocket.hndler.MainSystemWebSocketHandler.java

public void releaseEquipment(WebSocketSession wss, JSONObject jsonString) {
    long start = System.currentTimeMillis();
    String cabinet_NUM = MapEquipment.get(userMap.get(wss)); //?
    ResourceRelease resourceRelease = new ResourceRelease(cabinet_NUM);
    if (resourceRelease.release()) {
        System.out.println("??");
        jsonString.put("success", true);
    } else {/*w  w  w.  j a  v a2s.  com*/
        System.out.println("false!");
        System.out.println(resourceRelease.getReturnDetail());
        jsonString.put("success", false);
    }
    long end = System.currentTimeMillis();
    System.out.println("?" + (end - start) + "ms");
    String mess = jsonString.toString();
    try {
        wss.sendMessage(new TextMessage(mess));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:org.springframework.messaging.simp.stomp.StompProtocolHandler.java

/**
 * Handle STOMP messages going back out to WebSocket clients.
 *///from  w w w .  j  a va 2  s  .  com
@Override
public void handleMessageToClient(WebSocketSession session, Message<?> message) {

    StompHeaderAccessor headers = StompHeaderAccessor.wrap(message);
    headers.setCommandIfNotSet(StompCommand.MESSAGE);

    if (StompCommand.CONNECTED.equals(headers.getCommand())) {
        // Ignore for now since we already sent it
        return;
    }

    if (StompCommand.MESSAGE.equals(headers.getCommand()) && (headers.getSubscriptionId() == null)) {
        // TODO: failed message delivery mechanism
        logger.error("Ignoring message, no subscriptionId header: " + message);
        return;
    }

    if (!(message.getPayload() instanceof byte[])) {
        // TODO: failed message delivery mechanism
        logger.error("Ignoring message, expected byte[] content: " + message);
        return;
    }

    try {
        message = MessageBuilder.withPayloadAndHeaders(message.getPayload(), headers).build();
        byte[] bytes = this.stompMessageConverter.fromMessage(message);
        session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8"))));
    } catch (Throwable t) {
        sendErrorMessage(session, t);
    } finally {
        if (StompCommand.ERROR.equals(headers.getCommand())) {
            try {
                session.close(CloseStatus.PROTOCOL_ERROR);
            } catch (IOException e) {
            }
        }
    }
}

From source file:org.springframework.messaging.simp.stomp.StompProtocolHandler.java

protected void handleConnect(WebSocketSession session, Message<?> message) throws IOException {

    StompHeaderAccessor connectHeaders = StompHeaderAccessor.wrap(message);
    StompHeaderAccessor connectedHeaders = StompHeaderAccessor.create(StompCommand.CONNECTED);

    Set<String> acceptVersions = connectHeaders.getAcceptVersion();
    if (acceptVersions.contains("1.2")) {
        connectedHeaders.setVersion("1.2");
    } else if (acceptVersions.contains("1.1")) {
        connectedHeaders.setVersion("1.1");
    } else if (acceptVersions.isEmpty()) {
        // 1.0/*from www  .ja va  2s.c  om*/
    } else {
        throw new StompConversionException("Unsupported version '" + acceptVersions + "'");
    }
    connectedHeaders.setHeartbeat(0, 0); // TODO

    Principal principal = session.getPrincipal();
    if (principal != null) {
        connectedHeaders.setNativeHeader(CONNECTED_USER_HEADER, principal.getName());
        connectedHeaders.setNativeHeader(QUEUE_SUFFIX_HEADER, session.getId());

        if (this.queueSuffixResolver != null) {
            String suffix = session.getId();
            this.queueSuffixResolver.addQueueSuffix(principal.getName(), session.getId(), suffix);
        }
    }

    // TODO: security

    Message<?> connectedMessage = MessageBuilder.withPayloadAndHeaders(new byte[0], connectedHeaders).build();
    byte[] bytes = this.stompMessageConverter.fromMessage(connectedMessage);
    session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8"))));
}

From source file:org.springframework.messaging.simp.stomp.StompProtocolHandler.java

protected void sendErrorMessage(WebSocketSession session, Throwable error) {

    StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.ERROR);
    headers.setMessage(error.getMessage());
    Message<?> message = MessageBuilder.withPayloadAndHeaders(new byte[0], headers).build();
    byte[] bytes = this.stompMessageConverter.fromMessage(message);
    try {/* w w w .j av a  2 s . co m*/
        session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8"))));
    } catch (Throwable t) {
        // ignore
    }
}

From source file:org.springframework.messaging.simp.stomp.StompWebSocketHandler.java

protected void handleConnect(WebSocketSession session, Message<?> message) throws IOException {

    StompHeaderAccessor connectHeaders = StompHeaderAccessor.wrap(message);
    StompHeaderAccessor connectedHeaders = StompHeaderAccessor.create(StompCommand.CONNECTED);

    Set<String> acceptVersions = connectHeaders.getAcceptVersion();
    if (acceptVersions.contains("1.2")) {
        connectedHeaders.setAcceptVersion("1.2");
    } else if (acceptVersions.contains("1.1")) {
        connectedHeaders.setAcceptVersion("1.1");
    } else if (acceptVersions.isEmpty()) {
        // 1.0/*from  w  ww .  j  av  a 2s .com*/
    } else {
        throw new StompConversionException("Unsupported version '" + acceptVersions + "'");
    }
    connectedHeaders.setHeartbeat(0, 0); // TODO

    Principal principal = session.getPrincipal();
    if (principal != null) {
        connectedHeaders.setNativeHeader(CONNECTED_USER_HEADER, principal.getName());
        connectedHeaders.setNativeHeader(QUEUE_SUFFIX_HEADER, session.getId());

        if (this.queueSuffixResolver != null) {
            String suffix = session.getId();
            this.queueSuffixResolver.addQueueSuffix(principal.getName(), session.getId(), suffix);
        }
    }

    // TODO: security

    Message<?> connectedMessage = MessageBuilder.withPayloadAndHeaders(new byte[0], connectedHeaders).build();
    byte[] bytes = this.stompMessageConverter.fromMessage(connectedMessage);
    session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8"))));
}