/** * Sends a complete text message, invoking the callback when complete * * @param message The text to send * @param wsChannel The web socket channel * @param callback The callback to invoke on completion */ public static void sendText(final String message, final WebSocketChannel wsChannel, final WebSocketCallback<Void> callback) { sendText(message, wsChannel, callback, null); }
@Override public void sendBytes(final byte[] data, final SuccessCallback success, final OnError err) { WebSockets.sendBinary(ByteBuffer.wrap(data), channel, callback(log, success, err)); }
/** * Sends a complete ping message, invoking the callback when complete * * @param data The data to send * @param wsChannel The web socket channel * @param callback The callback to invoke on completion */ public static void sendPing(final ByteBuffer[] data, final WebSocketChannel wsChannel, final WebSocketCallback<Void> callback) { sendInternal(mergeBuffers(data), WebSocketFrameType.PING, wsChannel, callback, null, -1); }
/** * Sends a complete binary message using blocking IO * * @param data The data to send * @param wsChannel The web socket channel */ public static void sendBinaryBlocking(final ByteBuffer[] data, final WebSocketChannel wsChannel) throws IOException { sendBlockingInternal(mergeBuffers(data), WebSocketFrameType.BINARY, wsChannel); }
@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); WebSockets.sendText(text, getDelegate(), new SendProcessorCallback(message.getPayload())); } else if (WebSocketMessage.Type.BINARY.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendBinary(buffer, getDelegate(), new SendProcessorCallback(message.getPayload())); } else if (WebSocketMessage.Type.PING.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendPing(buffer, getDelegate(), new SendProcessorCallback(message.getPayload())); } else if (WebSocketMessage.Type.PONG.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendPong(buffer, getDelegate(), new SendProcessorCallback(message.getPayload())); } else { throw new IllegalArgumentException("Unexpected message type: " + message.getType()); } return true; }
@Override public void sendBinary(byte[] message) { WebSocketCallback callback = new WebSocketCallback() { @Override public void complete(WebSocketChannel channel, Object context) { } @Override public void onError(WebSocketChannel channel, Object context, Throwable throwable) { setLastError(throwable); try { isClosed = true; UTWebObjectSocket.this.close(); } catch (IOException e) { FSTUtil.<RuntimeException>rethrow(e); } } }; if ( sendStrings ) { // node filereader cannot handle blobs WebSockets.sendText(ByteBuffer.wrap(message), channel, callback ); } else { WebSockets.sendBinary(ByteBuffer.wrap(message), channel, callback); } }
@Override protected void doClose() { WebSockets.sendClose(CloseMessage.GOING_AWAY, null, WebSocketChannel.this, null); } };
public CloseMessage(final ByteBuffer[] buffers) { this(WebSockets.mergeBuffers(buffers)); }
protected void onFullPingMessage(final WebSocketChannel channel, BufferedBinaryMessage message) throws IOException { final Pooled<ByteBuffer[]> data = message.getData(); WebSockets.sendPong(data.getResource(), channel, new FreeDataCallback(data)); }
@Override public void sendPing() { if (channel.isOpen()) { touchLastActivityTime(); WebSockets.sendPing(ByteBuffer.allocate(0), channel, null); } }
@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); WebSockets.sendText(text, getDelegate(), new SendProcessorCallback()); } else if (WebSocketMessage.Type.BINARY.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendBinary(buffer, getDelegate(), new SendProcessorCallback()); } else if (WebSocketMessage.Type.PING.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendPing(buffer, getDelegate(), new SendProcessorCallback()); } else if (WebSocketMessage.Type.PONG.equals(message.getType())) { getSendProcessor().setReadyToSend(false); WebSockets.sendPong(buffer, getDelegate(), new SendProcessorCallback()); } else { throw new IllegalArgumentException("Unexpected message type: " + message.getType()); } return true; }
if (channel.isOpen()) { if (message instanceof String) { WebSockets.sendText((String) message, channel, callback); } else if (message instanceof byte[]) { ByteBuffer buffer = ByteBuffer.wrap((byte[]) message); WebSockets.sendBinary(buffer, channel, callback, timeoutMillis); } else if (message instanceof Reader) { Reader r = (Reader) message; WebSockets.sendText(IOConverter.toString(r), channel, callback); } else if (message instanceof InputStream) { InputStream in = (InputStream) message; ByteBuffer buffer = ByteBuffer.wrap(IOConverter.toBytes(in)); WebSockets.sendBinary(buffer, channel, callback, timeoutMillis); } else { throw new RuntimeCamelException(
/** * Sends a complete close message, invoking the callback when complete * * @param closeMessage The close message * @param wsChannel The web socket channel * @param callback The callback to invoke on completion */ public static void sendClose(final CloseMessage closeMessage, final WebSocketChannel wsChannel, final WebSocketCallback<Void> callback) { sendClose(closeMessage, wsChannel, callback, null); }
/** * Sends a complete ping message using blocking IO * * @param data The data to send * @param wsChannel The web socket channel */ public static void sendPingBlocking(final ByteBuffer[] data, final WebSocketChannel wsChannel) throws IOException { sendBlockingInternal(mergeBuffers(data), WebSocketFrameType.PING, wsChannel); }
@Override protected void onFullBinaryMessage(final WebSocketChannel channel, final BufferedBinaryMessage message) throws IOException { ready(); Pooled<ByteBuffer[]> data = message.getData(); try { this.onBinaryCallback.accept(WebSockets.mergeBuffers(data.getResource())); } finally { data.free(); } }
protected void onFullPingMessage(final WebSocketChannel channel, BufferedBinaryMessage message) throws IOException { final Pooled<ByteBuffer[]> data = message.getData(); WebSockets.sendPong(data.getResource(), channel, new FreeDataCallback(data)); }
@Override public void sendPing() { if (WebsocketRequestBuilderDefault.this.connectionIsClosed) { return; } ByteBuffer buffer = null; try { buffer = ByteBuffer.wrap(getSpincastHttpClientWithWebsocketConfig().getWebsocketPingMessageString() .getBytes("UTF-8")); } catch (Exception ex) { throw SpincastStatics.runtimize(ex); } WebSockets.sendPing(buffer, channel, webSocketCallback); } };
/** * Sends a complete text message, invoking the callback when complete * * @param message The text to send * @param wsChannel The web socket channel * @param callback The callback to invoke on completion * @param timeoutmillis the timeout in milliseconds */ public static void sendText(final String message, final WebSocketChannel wsChannel, final WebSocketCallback<Void> callback, long timeoutmillis) { sendText(message, wsChannel, callback, null, timeoutmillis); }
callback.complete(this.underlyingChannel, null); } else if (message instanceof String) { WebSockets.sendText((String) message, this.underlyingChannel, callback); } else if (message instanceof byte[]) { WebSockets.sendBinary(ByteBuffer.wrap((byte[]) message), this.underlyingChannel, callback);
/** * Sends a complete binary message, invoking the callback when complete * * @param data The data to send * @param wsChannel The web socket channel * @param callback The callback to invoke on completion * @param timeoutmillis the timeout in milliseconds */ public static void sendBinary(final ByteBuffer[] data, final WebSocketChannel wsChannel, final WebSocketCallback<Void> callback, long timeoutmillis) { sendInternal(mergeBuffers(data), WebSocketFrameType.BINARY, wsChannel, callback, null, timeoutmillis); }