List of usage examples for org.springframework.web.socket TextMessage TextMessage
public TextMessage(byte[] payload)
From source file:com.music.websocket.GameTest.java
private TextMessage getTextMessage(GameMessage msg) { String payload;//from w w w. j a v a2s . c om try { payload = mapper.writeValueAsString(msg); } catch (JsonProcessingException e) { throw new IllegalStateException(e); } TextMessage message = new TextMessage(payload); return message; }
From source file:org.kurento.tutorial.pointerdetector.PointerDetectorHandler.java
private void start(final WebSocketSession session, JsonObject jsonMessage) { try {//from w w w. j a va2 s .co m // Media Logic (Media Pipeline and Elements) UserSession user = new UserSession(); MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEndpoint); users.put(session.getId(), user); webRtcEndpoint.addIceCandidateFoundListener(new EventListener<IceCandidateFoundEvent>() { @Override public void onEvent(IceCandidateFoundEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "iceCandidate"); response.add("candidate", JsonUtils.toJsonObject(event.getCandidate())); try { synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } } catch (IOException e) { log.debug(e.getMessage()); } } }); pointerDetectorFilter = new PointerDetectorFilter.Builder(pipeline, new WindowParam(5, 5, 30, 30)) .build(); pointerDetectorFilter.addWindow(new PointerDetectorWindowMediaParam("window0", 50, 50, 500, 150)); pointerDetectorFilter.addWindow(new PointerDetectorWindowMediaParam("window1", 50, 50, 500, 250)); webRtcEndpoint.connect(pointerDetectorFilter); pointerDetectorFilter.connect(webRtcEndpoint); pointerDetectorFilter.addWindowInListener(new EventListener<WindowInEvent>() { @Override public void onEvent(WindowInEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "windowIn"); response.addProperty("roiId", event.getWindowId()); try { session.sendMessage(new TextMessage(response.toString())); } catch (Throwable t) { sendError(session, t.getMessage()); } } }); pointerDetectorFilter.addWindowOutListener(new EventListener<WindowOutEvent>() { @Override public void onEvent(WindowOutEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "windowOut"); response.addProperty("roiId", event.getWindowId()); try { session.sendMessage(new TextMessage(response.toString())); } catch (Throwable t) { sendError(session, t.getMessage()); } } }); // SDP negotiation (offer and answer) String sdpOffer = jsonMessage.get("sdpOffer").getAsString(); String sdpAnswer = webRtcEndpoint.processOffer(sdpOffer); // Sending response back to client JsonObject response = new JsonObject(); response.addProperty("id", "startResponse"); response.addProperty("sdpAnswer", sdpAnswer); synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } webRtcEndpoint.gatherCandidates(); } catch (Throwable t) { sendError(session, t.getMessage()); } }
From source file:org.kurento.demo.CrowdDetectorHandler.java
private static void sendError(WebSocketSession session, String message) { try {/*from www . j a v a 2s . c om*/ JsonObject response = new JsonObject(); response.addProperty("id", "error"); response.addProperty("message", message); session.sendMessage(new TextMessage(response.toString())); } catch (IOException e) { log.error("Exception sending message", e); } }
From source file:ch.rasc.wampspring.pubsub.PubSubTest.java
@Test public void testEventMessenger() throws InterruptedException, ExecutionException, IOException, TimeoutException { CompletableFutureWebSocketHandler result = new CompletableFutureWebSocketHandler(this.jsonFactory); try (WebSocketSession webSocketSession = startWebSocketSession(result)) { SubscribeMessage subscribeMsg = new SubscribeMessage("secondTopic"); webSocketSession.sendMessage(new TextMessage(subscribeMsg.toJson(this.jsonFactory))); EventMessage event = (EventMessage) result.getWampMessage(); assertThat(event.getTopicURI()).isEqualTo("secondTopic"); assertThat(event.getEvent()).isEqualTo("a simple message"); }/*w w w. j a v a 2 s . co m*/ }
From source file:org.kurento.tutorial.player.PlayerHandler.java
private void start(final WebSocketSession session, JsonObject jsonMessage) { // 1. Media pipeline final UserSession user = new UserSession(); MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline);/*from ww w. j a va2 s . co m*/ WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEndpoint); String videourl = jsonMessage.get("videourl").getAsString(); final PlayerEndpoint playerEndpoint = new PlayerEndpoint.Builder(pipeline, videourl).build(); user.setPlayerEndpoint(playerEndpoint); users.put(session.getId(), user); playerEndpoint.connect(webRtcEndpoint); // 2. WebRtcEndpoint // ICE candidates webRtcEndpoint.addIceCandidateFoundListener(new EventListener<IceCandidateFoundEvent>() { @Override public void onEvent(IceCandidateFoundEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "iceCandidate"); response.add("candidate", JsonUtils.toJsonObject(event.getCandidate())); try { synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } } catch (IOException e) { log.debug(e.getMessage()); } } }); String sdpOffer = jsonMessage.get("sdpOffer").getAsString(); String sdpAnswer = webRtcEndpoint.processOffer(sdpOffer); JsonObject response = new JsonObject(); response.addProperty("id", "startResponse"); response.addProperty("sdpAnswer", sdpAnswer); sendMessage(session, response.toString()); webRtcEndpoint.addMediaStateChangedListener(new EventListener<MediaStateChangedEvent>() { @Override public void onEvent(MediaStateChangedEvent event) { if (event.getNewState() == MediaState.CONNECTED) { VideoInfo videoInfo = playerEndpoint.getVideoInfo(); JsonObject response = new JsonObject(); response.addProperty("id", "videoInfo"); response.addProperty("isSeekable", videoInfo.getIsSeekable()); response.addProperty("initSeekable", videoInfo.getSeekableInit()); response.addProperty("endSeekable", videoInfo.getSeekableEnd()); response.addProperty("videoDuration", videoInfo.getDuration()); sendMessage(session, response.toString()); } } }); webRtcEndpoint.gatherCandidates(); // 3. PlayEndpoint playerEndpoint.addErrorListener(new EventListener<ErrorEvent>() { @Override public void onEvent(ErrorEvent event) { log.info("ErrorEvent: {}", event.getDescription()); sendPlayEnd(session); } }); playerEndpoint.addEndOfStreamListener(new EventListener<EndOfStreamEvent>() { @Override public void onEvent(EndOfStreamEvent event) { log.info("EndOfStreamEvent: {}", event.getTimestamp()); sendPlayEnd(session); } }); playerEndpoint.play(); }
From source file:ch.rasc.wampspring.pubsub.PubSubReplyAnnotationTest.java
@Test public void testPublish3() throws InterruptedException, ExecutionException, IOException, TimeoutException { CompletableFutureWebSocketHandler result = new CompletableFutureWebSocketHandler(this.jsonFactory); try (WebSocketSession webSocketSession = startWebSocketSession(result)) { SubscribeMessage subscribeMsg = new SubscribeMessage("replyTo3"); webSocketSession.sendMessage(new TextMessage(subscribeMsg.toJson(this.jsonFactory))); PublishMessage pm = new PublishMessage("incomingPublish3", "testPublish3"); webSocketSession.sendMessage(new TextMessage(pm.toJson(this.jsonFactory))); EventMessage event = (EventMessage) result.getWampMessage(); assertThat(event.getTopicURI()).isEqualTo("replyTo3"); assertThat(event.getEvent()).isEqualTo("return3:testPublish3"); }//from w w w .j a v a 2 s .c o m }
From source file:com.devicehive.websockets.AbstractWebSocketHandler.java
@Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { logger.error("Error in session " + session.getId(), exception); JsonMessageBuilder builder;/* w ww.jav a 2 s . c om*/ session = sessionMonitor.getSession(session.getId()); if (exception instanceof JsonParseException) { builder = JsonMessageBuilder.createErrorResponseBuilder(HttpServletResponse.SC_BAD_REQUEST, "Incorrect JSON syntax"); } else { builder = JsonMessageBuilder.createErrorResponseBuilder(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Internal server error"); } session.sendMessage(new TextMessage(GsonFactory.createGson().toJson(builder.build()))); }
From source file:org.kurento.tutorial.one2manycall.CallHandler.java
private synchronized void presenter(final WebSocketSession session, JsonObject jsonMessage) throws IOException { if (presenterUserSession == null) { presenterUserSession = new UserSession(session); pipeline = kurento.createMediaPipeline(); presenterUserSession.setWebRtcEndpoint(new WebRtcEndpoint.Builder(pipeline).build()); WebRtcEndpoint presenterWebRtc = presenterUserSession.getWebRtcEndpoint(); presenterWebRtc.addIceCandidateFoundListener(new EventListener<IceCandidateFoundEvent>() { @Override/*from w ww.j av a2s . c o m*/ public void onEvent(IceCandidateFoundEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "iceCandidate"); response.add("candidate", JsonUtils.toJsonObject(event.getCandidate())); try { synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } } catch (IOException e) { log.debug(e.getMessage()); } } }); String sdpOffer = jsonMessage.getAsJsonPrimitive("sdpOffer").getAsString(); String sdpAnswer = presenterWebRtc.processOffer(sdpOffer); JsonObject response = new JsonObject(); response.addProperty("id", "presenterResponse"); response.addProperty("response", "accepted"); response.addProperty("sdpAnswer", sdpAnswer); synchronized (session) { presenterUserSession.sendMessage(response); } presenterWebRtc.gatherCandidates(); } else { JsonObject response = new JsonObject(); response.addProperty("id", "presenterResponse"); response.addProperty("response", "rejected"); response.addProperty("message", "Another user is currently acting as sender. Try again later ..."); session.sendMessage(new TextMessage(response.toString())); } }
From source file:org.kurento.tutorial.senddatachannel.SendDataChannelHandler.java
private void start(final WebSocketSession session, JsonObject jsonMessage) { try {/*from w w w. j a v a2s.c o m*/ // User session UserSession user = new UserSession(); MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).useDataChannels().build(); user.setWebRtcEndpoint(webRtcEndpoint); PlayerEndpoint player = new PlayerEndpoint.Builder(pipeline, "http://files.kurento.org/video/filter/barcodes.webm").build(); user.setPlayer(player); users.put(session.getId(), user); player.addErrorListener(new EventListener<ErrorEvent>() { @Override public void onEvent(ErrorEvent event) { log.info("ErrorEvent: {}", event.getDescription()); sendPlayEnd(session); } }); player.addEndOfStreamListener(new EventListener<EndOfStreamEvent>() { @Override public void onEvent(EndOfStreamEvent event) { log.info("EndOfStreamEvent: {}", event.getTimestamp()); sendPlayEnd(session); } }); // ICE candidates webRtcEndpoint.addOnIceCandidateListener(new EventListener<OnIceCandidateEvent>() { @Override public void onEvent(OnIceCandidateEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "iceCandidate"); response.add("candidate", JsonUtils.toJsonObject(event.getCandidate())); try { synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } } catch (IOException e) { log.debug(e.getMessage()); } } }); // Media logic KmsSendData kmsSendData = new KmsSendData.Builder(pipeline).build(); player.connect(kmsSendData); kmsSendData.connect(webRtcEndpoint); // SDP negotiation (offer and answer) String sdpOffer = jsonMessage.get("sdpOffer").getAsString(); String sdpAnswer = webRtcEndpoint.processOffer(sdpOffer); JsonObject response = new JsonObject(); response.addProperty("id", "startResponse"); response.addProperty("sdpAnswer", sdpAnswer); synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } webRtcEndpoint.gatherCandidates(); player.play(); } catch (Throwable t) { sendError(session, t.getMessage()); } }
From source file:org.kurento.tutorial.groupcall.UserSession.java
private WebRtcEndpoint getEndpointForUser(final UserSession sender) { if (sender.getName().equals(name)) { log.debug("PARTICIPANT {}: configuring loopback", this.name); return outgoingMedia; }//from w w w. ja v a 2 s. c o m log.debug("PARTICIPANT {}: receiving video from {}", this.name, sender.getName()); WebRtcEndpoint incoming = incomingMedia.get(sender.getName()); if (incoming == null) { log.debug("PARTICIPANT {}: creating new endpoint for {}", this.name, sender.getName()); incoming = new WebRtcEndpoint.Builder(pipeline).build(); incoming.addIceCandidateFoundListener(new EventListener<IceCandidateFoundEvent>() { @Override public void onEvent(IceCandidateFoundEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "iceCandidate"); response.addProperty("name", sender.getName()); response.add("candidate", JsonUtils.toJsonObject(event.getCandidate())); try { synchronized (session) { session.sendMessage(new TextMessage(response.toString())); } } catch (IOException e) { log.debug(e.getMessage()); } } }); incomingMedia.put(sender.getName(), incoming); } log.debug("PARTICIPANT {}: obtained endpoint for {}", this.name, sender.getName()); sender.getOutgoingWebRtcPeer().connect(incoming); return incoming; }