Refine search
@Override public void ping() throws IOException { session.getRemote().sendString(WebsocketMessages.PING); }
@Override public void close(int code, String reason) { session.close(code, reason); }
@Override public boolean isOpen() { return session.isOpen(); }
@Override public void initializeNativeSession(Session session) { super.initializeNativeSession(session); this.uri = session.getUpgradeRequest().getRequestURI(); HttpHeaders headers = new HttpHeaders(); headers.putAll(session.getUpgradeRequest().getHeaders()); this.headers = HttpHeaders.readOnlyHttpHeaders(headers); this.acceptedProtocol = session.getUpgradeResponse().getAcceptedSubProtocol(); List<ExtensionConfig> jettyExtensions = session.getUpgradeResponse().getExtensions(); if (!CollectionUtils.isEmpty(jettyExtensions)) { List<WebSocketExtension> extensions = new ArrayList<>(jettyExtensions.size()); for (ExtensionConfig jettyExtension : jettyExtensions) { extensions.add(new WebSocketExtension(jettyExtension.getName(), jettyExtension.getParameters())); } this.extensions = Collections.unmodifiableList(extensions); } else { this.extensions = Collections.emptyList(); } if (this.user == null) { this.user = session.getUpgradeRequest().getUserPrincipal(); } }
@OnWebSocketConnect public void onConnect(Session session) throws Exception { this.session = session; socketHealthService.register(this); LOGGER.debug("{} connected", sessionName()); session.getRemote().sendString(consoleLogCharsetJSONMessage); long start = parseStartLine(session.getUpgradeRequest()); LOGGER.debug("{} sending logs for {} starting at line {}.", sessionName(), jobIdentifier, start); try { handler.process(this, jobIdentifier, start); } catch (IOException e) { if ("Connection output is closed".equals(e.getMessage())) { LOGGER.debug("{} client (likely, browser) closed connection prematurely.", sessionName()); close(); // for good measure } else { throw e; } } }
/** * Upon connection to the Coinbase Websocket market feed, we send our * subscription message to indicate the product we want to subscribe to. * @param session Websocket session */ @OnWebSocketConnect public void onConnect(Session session) { LOG.info("Got connect: %s%n", session); try { Future<Void> fut; fut = session.getRemote().sendStringByFuture(COINBASE_SUBSCRIBE_MESSAGE); fut.get(2, TimeUnit.SECONDS); } catch (Throwable t) { t.printStackTrace(); } }
@Override public void write(byte[] data, int offset, int length) throws IOException { try { session.getRemote().sendBytesByFuture(ByteBuffer.wrap(data, offset, length)).get(); } catch (InterruptedException | ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
@Override public TransportConnection connect( HostnamePort address ) throws Exception { URI target = uriGenerator.apply( address ); client = clientSupplier.get(); client.start(); Session session; try { session = client.connect( this, target ).get( 10, SECONDS ); } catch ( Exception e ) { throw new IOException( "Failed to connect to the server within 10 seconds", e ); } server = session.getRemote(); return this; }
public void byWebSocket() { try { if (session == null || !session.isOpen()) { Future<Session> fu = ws.connect(saws, URI.create(conf.get("actuator.uplink.url", "ws://127.0.0.1:8802/monitor/websocket"))); session = fu.get(5, TimeUnit.SECONDS); } NutMap re = monitorService.getMonitors(); session.getRemote().sendString(Json.toJson(re, JsonFormat.full().setCompact(true))); } catch (Throwable e) { log.info("monitor.uplink.error", e); } }
@OnWebSocketConnect public void onConnect(Session session) { System.out.printf("Got connect: %s%n", session); this.session = session; try { Future<Void> fut; fut = session.getRemote().sendStringByFuture("Hello"); fut.get(2, TimeUnit.SECONDS); fut = session.getRemote().sendStringByFuture("Thanks for the conversation."); fut.get(2, TimeUnit.SECONDS); session.close(StatusCode.NORMAL, "I'm done"); } catch (Throwable t) { t.printStackTrace(); } }
public void sendMsg(String context, int sizeOfMessage) throws IOException, JsonParseException, InterruptedException, ExecutionException { byte[] payload = new byte[sizeOfMessage]; String message = getEncoder().encodeToString(payload); String timeStamp = "{\"payload\": \"" + message + "\",\"context\": \"" + context + "\"}"; String sampleMsg = new Gson().fromJson(timeStamp, JsonObject.class).toString(); if (this.session != null && this.session.isOpen() && this.session.getRemote() != null) { startTimeMap.put(context, System.nanoTime()); this.session.getRemote().sendStringByFuture(sampleMsg).get(); } else { log.error("Session is already closed"); } }
@Override protected boolean sendMessage(WebSocketMessage message) throws IOException { ByteBuffer buffer = message.getPayload().asByteBuffer(); if (WebSocketMessage.Type.TEXT.equals(message.getType())) { getSendProcessor().setReadyToSend(false); String text = new String(buffer.array(), StandardCharsets.UTF_8); getDelegate().getRemote().sendString(text, new SendProcessorCallback()); } else if (WebSocketMessage.Type.BINARY.equals(message.getType())) { getSendProcessor().setReadyToSend(false); getDelegate().getRemote().sendBytes(buffer, new SendProcessorCallback()); } else if (WebSocketMessage.Type.PING.equals(message.getType())) { getDelegate().getRemote().sendPing(buffer); } else if (WebSocketMessage.Type.PONG.equals(message.getType())) { getDelegate().getRemote().sendPong(buffer); } else { throw new IllegalArgumentException("Unexpected message type: " + message.getType()); } return true; }
@OnWebSocketConnect public void onConnect(Session session) throws IOException { System.out.printf("Got connect: %s%n", session); LOG.info("Got connect: %s%n", session); // Trivial MQTT Connect message // assertEquals(12, out.readByte()); //remaining length // verifyString("MQIsdp", out); // assertEquals(0x03, out.readByte()); //protocol version // assertEquals(0x32, out.readByte()); //flags // assertEquals(2, out.readByte()); //keepAliveTimer msb // assertEquals(0, out.readByte()); //keepAliveTimer lsb ByteBuffer msg = ByteBuffer.wrap(new byte[]{0x10, // message type 0x0C, // remaining lenght 12 bytes 'M', 'Q', 'I', 's', 'd', 'p', 0x03, // protocol version 0x32, // flags 0x02, 0x00// keepAlive Timer, 2 seconds }); // try { session.getRemote().sendBytes(msg); this.connectSentLatch.countDown(); session.close(StatusCode.NORMAL, "I'm done"); // } catch (IOException t) { // LOG.error(null, t); // } }
public void send(Payload payload) { if (session != null && session.isOpen()) { try { session.getRemote().sendString(writer.writeValueAsString(new SocketMessage(payload)), null); } catch (JsonProcessingException e) { logger.warn("Failure while writing socket message.", e); } } }
@Override public void complete(boolean success) { session.getRemote().sendStringByFuture("{ \"command\": \"complete\", \"success\": " + success + " }"); } }
/** * Sends a message on the websocket. * * @param message The message to send. */ public void send(String message) { if (getSession() != null && getSession().isOpen()) { getSession().getRemote().sendStringByFuture(message); } else { Discord4J.LOGGER.warn(LogMarkers.VOICE_WEBSOCKET, "Attempt to send message on closed session: {}", message); } }
@Override public void send(final Message msg) { LOGGER.debug("{} send message: {}", sessionName(), msg); session.getRemote().sendBytesByFuture(ByteBuffer.wrap(MessageEncoding.encodeMessage(msg))); }
@Test public void shouldSetSessionToNullWhenStopped() throws Exception { when(session.isOpen()).thenReturn(true); when(session.getRemoteAddress()).thenReturn(null); handler.stop(); verify(session).close(); assertThat(handler.isNotRunning(), is(true)); }