List of usage examples for org.springframework.web.socket TextMessage TextMessage
public TextMessage(byte[] payload)
From source file:com.visual_tools.nubomedia.nuboEarJava.NuboEarJavaHandler.java
private void start(final WebSocketSession session, JsonObject jsonMessage) { try {/*from w ww . j a v a 2 s.c o m*/ String sessionId = session.getId(); UserSession user = new UserSession(sessionId); users.put(sessionId, user); webRtcEndpoint = user.getWebRtcEndpoint(); //Ice Candidate 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())); sendMessage(session, new TextMessage(response.toString())); } }); /******** Media Logic ********/ ear = new NuboEarDetector.Builder(user.getMediaPipeline()).build(); webRtcEndpoint.connect(ear); ear.connect(webRtcEndpoint); ear.activateServerEvents(1, 3000); addEarListener(); // 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) { sendMessage(session, new TextMessage(response.toString())); } webRtcEndpoint.gatherCandidates(); } catch (NotEnoughResourcesException e) { log.warn("Not enough resources", e); notEnoughResources(session); } catch (Throwable t) { log.error("Exception starting session", t); error(session, t.getClass().getSimpleName() + ": " + t.getMessage()); } }
From source file:org.kurento.jsonrpc.internal.ws.JsonRpcWebSocketHandler.java
@Override public void handleTextMessage(final WebSocketSession wsSession, TextMessage message) throws Exception { try {/*from ww w . j av a 2s. c om*/ String messageJson = message.getPayload(); // TODO Ensure only one register message per websocket session. ServerSessionFactory factory = new ServerSessionFactory() { @Override public ServerSession createSession(String sessionId, Object registerInfo, SessionsManager sessionsManager) { return new WebSocketServerSession(sessionId, registerInfo, sessionsManager, wsSession); } @Override public void updateSessionOnReconnection(ServerSession session) { ((WebSocketServerSession) session).updateWebSocketSession(wsSession); } }; protocolManager.processMessage(messageJson, factory, new ResponseSender() { @Override public void sendResponse(Message message) throws IOException { String jsonMessage = message.toString(); log.debug("{} <-Res {}", label, jsonMessage); sendJsonMessage(jsonMessage); } @Override public void sendPingResponse(Message message) throws IOException { String jsonMessage = message.toString(); log.trace("{} <-Res {}", label, jsonMessage); sendJsonMessage(jsonMessage); } private void sendJsonMessage(String jsonMessage) throws IOException { synchronized (wsSession) { if (wsSession.isOpen()) { wsSession.sendMessage(new TextMessage(jsonMessage)); } else { log.error("Trying to send a message to a closed session"); } } } }, wsSession.getId()); } catch (Exception e) { log.error(label + "Exception processing request", e); } }
From source file:ch.rasc.wampspring.config.WampSubProtocolHandler.java
/** * Handle WAMP messages going back out to WebSocket clients. *///from w w w . ja v a 2 s .c o m @Override public void handleMessageToClient(WebSocketSession session, Message<?> message) { if (!(message instanceof WampMessage)) { logger.error("Expected WampMessage. Ignoring " + message + "."); return; } boolean closeWebSocketSession = false; try { String json = ((WampMessage) message).toJson(this.jsonFactory); session.sendMessage(new TextMessage(json)); } catch (SessionLimitExceededException ex) { // Bad session, just get out throw ex; } catch (Throwable ex) { // Could be part of normal workflow (e.g. browser tab closed) logger.debug("Failed to send WebSocket message to client in session " + session.getId() + ".", ex); closeWebSocketSession = true; } finally { if (closeWebSocketSession) { try { session.close(CloseStatus.PROTOCOL_ERROR); } catch (IOException ex) { // Ignore } } } }
From source file:cn.com.inhand.devicenetworks.ap.websocket.WSDNAccessPoint.java
@Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { System.out/* w w w . ja v a 2 s. c om*/ .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:com.spring.cloud.study.websocket.WebSocketForwardClientHandler.java
@Override public void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { Channel ch = ctx.channel();/*from www. j av a2 s . co m*/ if (!handshaker.isHandshakeComplete()) { try { handshaker.finishHandshake(ch, (FullHttpResponse) msg); handshakeFuture.setSuccess(); } catch (WebSocketHandshakeException e) { LOGGER.info("WebSocket Client failed to connect"); handshakeFuture.setFailure(e); } return; } if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; throw new IllegalStateException("Unexpected FullHttpResponse (getStatus=" + response.status() + ", content=" + response.content().toString(CharsetUtil.UTF_8) + ')'); } WebSocketFrame frame = (WebSocketFrame) msg; webSocketSession.sendMessage(new TextMessage(ByteBufUtil.getBytes(convertMessage(frame)))); }
From source file:org.kurento.tutorial.crowddetector.CrowdDetectorHandler.java
private void start(final WebSocketSession session, JsonObject jsonMessage) { try {/*from www. ja v a 2 s . c o 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.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()); } } }); List<RegionOfInterest> rois = new ArrayList<>(); List<RelativePoint> points = new ArrayList<RelativePoint>(); points.add(new RelativePoint(0, 0)); points.add(new RelativePoint(0.5F, 0)); points.add(new RelativePoint(0.5F, 0.5F)); points.add(new RelativePoint(0, 0.5F)); RegionOfInterestConfig config = new RegionOfInterestConfig(); config.setFluidityLevelMin(10); config.setFluidityLevelMed(35); config.setFluidityLevelMax(65); config.setFluidityNumFramesToEvent(5); config.setOccupancyLevelMin(10); config.setOccupancyLevelMed(35); config.setOccupancyLevelMax(65); config.setOccupancyNumFramesToEvent(5); config.setSendOpticalFlowEvent(false); config.setOpticalFlowNumFramesToEvent(3); config.setOpticalFlowNumFramesToReset(3); config.setOpticalFlowAngleOffset(0); rois.add(new RegionOfInterest(points, config, "roi0")); CrowdDetectorFilter crowdDetectorFilter = new CrowdDetectorFilter.Builder(pipeline, rois).build(); webRtcEndpoint.connect(crowdDetectorFilter); crowdDetectorFilter.connect(webRtcEndpoint); // addEventListener to crowddetector crowdDetectorFilter.addCrowdDetectorDirectionListener(new EventListener<CrowdDetectorDirectionEvent>() { @Override public void onEvent(CrowdDetectorDirectionEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "directionEvent"); response.addProperty("roiId", event.getRoiID()); response.addProperty("angle", event.getDirectionAngle()); try { session.sendMessage(new TextMessage(response.toString())); } catch (Throwable t) { sendError(session, t.getMessage()); } } }); crowdDetectorFilter.addCrowdDetectorFluidityListener(new EventListener<CrowdDetectorFluidityEvent>() { @Override public void onEvent(CrowdDetectorFluidityEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "fluidityEvent"); response.addProperty("roiId", event.getRoiID()); response.addProperty("level", event.getFluidityLevel()); response.addProperty("percentage", event.getFluidityPercentage()); try { session.sendMessage(new TextMessage(response.toString())); } catch (Throwable t) { sendError(session, t.getMessage()); } } }); crowdDetectorFilter.addCrowdDetectorOccupancyListener(new EventListener<CrowdDetectorOccupancyEvent>() { @Override public void onEvent(CrowdDetectorOccupancyEvent event) { JsonObject response = new JsonObject(); response.addProperty("id", "occupancyEvent"); response.addProperty("roiId", event.getRoiID()); response.addProperty("level", event.getOccupancyLevel()); response.addProperty("percentage", event.getOccupancyPercentage()); 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:fi.vtt.nubomedia.armodule.BaseHandler.java
protected void error(WebSocketSession session, String message) { try {/* w ww . j a v a 2 s. c o m*/ JsonObject response = new JsonObject(); response.addProperty("id", "error"); response.addProperty("message", message); sendMessage(session, new TextMessage(response.toString())); release(session); } catch (Exception e) { log.error("Exception sending message", e); } }
From source file:dk.apaq.orderly.CallHandler.java
private void handleErrorResponse(Throwable throwable, WebSocketSession session, BroadcastMessageType responseId) throws IOException { stop(session);//from w w w. ja v a2 s.c o m log.error(throwable.getMessage(), throwable); BroadcastMessageResponse response = new BroadcastMessageResponse(responseId, BroadcastMessageResponseType.Rejected, throwable.getMessage()); session.sendMessage(new TextMessage(objectMapper.writeValueAsString(response))); }
From source file:eu.nubomedia.tutorial.repository.RepositoryHandler.java
public void sendPlayEnd(WebSocketSession session) { // Send playEnd message to client JsonObject response = new JsonObject(); response.addProperty("id", "playEnd"); sendMessage(session, new TextMessage(response.toString())); }
From source file:org.chtijbug.drools.platform.runtime.servlet.websocket.SpringWebSocketServer.java
@Override public void sendMessage(final PlatformManagementKnowledgeBean platformManagementKnowledgeBean) throws DroolsChtijbugException { PlatformManagementKnowledgeBean.PlatformManagementKnowledgeBeanCode stream = new PlatformManagementKnowledgeBean.PlatformManagementKnowledgeBeanCode(); if (serverSession != null && serverSession.isOpen()) { StringWriter writer = new StringWriter(); try {// w w w . j a va2 s . c o m stream.encode(platformManagementKnowledgeBean, writer); TextMessage response = new TextMessage(writer.toString()); LOG.info(">> Server : " + response); serverSession.sendMessage(response); } catch (IOException e) { e.printStackTrace(); } catch (EncodeException e) { e.printStackTrace(); } } }