VertxFactory.newVertx() .createHttpClient() .setHost("localhost") .setPort(8080) .connectWebsocket("/ws", new Handler<WebSocket>() { @Override public void handle(final WebSocket webSocket) { // Listen webSocket.dataHandler(new Handler<Buffer>() { @Override public void handle(Buffer buff) { log.info("Received {}", buff.toString()); } }); // Publish webSocket.writeTextFrame("Heya"); } });
/** * Closes the socket. */ public void close() { socket.close(); }
private void connectToEndHandler(final WebSocket webSocket) { webSocket.endHandler(new Handler<Void>() { @Override public void handle(Void aVoid) { if (verbose) puts("Websocket connection was disconnected", webSocket); webSocket(null); connectWebSocket(); } }); }
WebSocketListener(final WebSocket ws, final Session session) { this.ws = ws; this.session = session; ws.dataHandler(new Handler<Buffer>() { public void handle(Buffer data) { if (!session.isClosed()) { String msgs = data.toString(); if (msgs.equals("")) { //Ignore empty frames } else if ((msgs.startsWith("[\"") && msgs.endsWith("\"]")) || (msgs.startsWith("\"") && msgs.endsWith("\""))) { session.handleMessages(msgs); } else { //Invalid JSON - we close the connection close(); } } } }); ws.closedHandler(new SimpleHandler() { public void handle() { closed = true; session.shutdown(); } }); }
private void connectToFrameStream(WebSocket webSocket) { webSocket.dataHandler(new Handler<Buffer>() { @Override public void handle(Buffer buffer) { if (verbose) { puts("Recieved data", buffer.toString()); } handleMessageFromServer(buffer.toString()); } }); }
public void exceptionHandler(Handler<Exception> handler) { ws.exceptionHandler(handler); }
/** * Writes data to the socket as a text frame. */ public WebSocket writeTextFrame(Env env, Value data) { socket.writeTextFrame(data.toString()); return this; }
@Override public WebSocket write(Env env, Value data, StringValue enc) { socket.write(new org.vertx.java.core.buffer.Buffer(data.toString())); return this; }
public void drainHandler(Handler<Void> handler) { ws.drainHandler(handler); }
@Override public WebSocket pause(Env env) { socket.pause(); return this; }
@Override public WebSocket resume(Env env) { socket.resume(); return this; }
public void setWriteQueueMaxSize(int maxQueueSize) { ws.setWriteQueueMaxSize(maxQueueSize); }
public void dataHandler(Handler<Buffer> handler) { ws.dataHandler(handler); }
private void connectToExceptionHandler(final WebSocket webSocket) { webSocket.exceptionHandler(new Handler<Throwable>() { @Override public void handle(Throwable throwable) { if (verbose) { puts("Exception!", throwable); } if (webSocket != null) { try { webSocket.close(); } catch (Exception ex) { if (verbose) { puts("Unable to close websocket"); ex.printStackTrace(); } } } errorConnecting = true; webSocket(null); } }); }
public void sendFrame(final String body) { if (log.isTraceEnabled()) log.trace("WS, sending frame"); if (!closed) { ws.writeTextFrame(body); } }
private void sendPing() { final WebSocket webSocket = webSocket(); if (webSocket != null) { webSocket.write(new Buffer(PingRequest.SINGLETON.formTextRequest())); } }
@Override public WebSocket drainHandler(Env env, Value handler) { PhpTypes.assertCallable(env, handler, "Argument to Vertx\\Http\\WebSocket::drainHandler() must be callable."); socket.drainHandler(HandlerFactory.createVoidHandler(env, handler)); return this; }
public void pause() { ws.pause(); }
public void resume() { ws.resume(); }
@Override public WebSocket writeQueueMaxSize(Env env, NumberValue size) { socket.setWriteQueueMaxSize(size.toInt()); return this; }