List of usage examples for io.vertx.core.http ServerWebSocket close
@Override Future<Void> close();
The WebSocket handshake will be accepted when it hasn't yet been settled or when an asynchronous handshake is in progress.
From source file:io.advantageous.qbit.vertx.http.server.VertxServerUtils.java
License:Apache License
public WebSocket createWebSocket(final ServerWebSocket vertxServerWebSocket) { final MultiMap<String, String> params = paramMap(vertxServerWebSocket); final MultiMap<String, String> headers = vertxServerWebSocket.headers().size() == 0 ? MultiMap.empty() : new MultiMapWrapper(vertxServerWebSocket.headers()); /* Create a websocket that uses vertxServerWebSocket to forwardEvent messages. */ final WebSocket webSocket = webSocketBuilder().setUri(vertxServerWebSocket.uri()) .setRemoteAddress(vertxServerWebSocket.remoteAddress().toString()) .setWebSocketSender(new WebSocketSender() { @Override// www. ja va 2 s .c om public void sendText(String message) { vertxServerWebSocket.writeFinalTextFrame(message); } @Override public void sendBytes(byte[] message) { vertxServerWebSocket.writeFinalBinaryFrame(Buffer.buffer(message)); } @Override public void close() { vertxServerWebSocket.close(); } }).setHeaders(headers).setParams(params).build(); /* Handle open. */ webSocket.onOpen(); /* Handle close. */ vertxServerWebSocket.closeHandler(event -> webSocket.onClose()); final Buffer[] bufferRef = new Buffer[1]; final int[] count = new int[1]; /* Handle frame. */ vertxServerWebSocket.frameHandler(event -> { count[0]++; if (event.isFinal()) { //If the count is 1 then all of the data is in bufferRef, else all of the data but the last bit is in bufferRef. final Buffer finalBuffer = count[0] > 1 ? createNewBuffer(bufferRef[0], event.binaryData()) : event.binaryData(); if (event.isBinary()) { ((NetSocketBase) webSocket).setBinary(); webSocket.onBinaryMessage(finalBuffer.getBytes()); } else { webSocket.onTextMessage(finalBuffer.toString("UTF-8")); } count[0] = 0; bufferRef[0] = null; } else { bufferRef[0] = createNewBuffer(bufferRef[0], event.binaryData()); } }); /* Handle error. */ vertxServerWebSocket.exceptionHandler(event -> { if (event instanceof Exception) { webSocket.onError((Exception) event); } else { webSocket.onError(new Exception(event)); } }); return webSocket; }
From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java
License:Open Source License
private void save(String id, String name, JsonObject infos, final ServerWebSocket ws) { JsonObject message = new JsonObject().put("action", "save").put("id", id).put("session", infos); if (isNotEmpty(name)) { message.put("name", name); }// w w w . j a v a2 s. co m eb.send(AudioRecorderWorker.class.getSimpleName(), message, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { ws.writeTextMessage("ok"); } else { ws.writeTextMessage(event.body().getString("message")); } ws.close(); } })); }
From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java
License:Open Source License
private void cancel(String id, final ServerWebSocket ws) { eb.send(AudioRecorderWorker.class.getSimpleName(), new JsonObject().put("action", "cancel").put("id", id), handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override/*from ww w . j a v a2 s . c o m*/ public void handle(Message<JsonObject> event) { if (ws != null) { if ("ok".equals(event.body().getString("status"))) { ws.writeTextMessage("ok"); } else { ws.writeTextMessage(event.body().getString("message")); } ws.close(); } } })); }