@Override public final State onHeadersReceived(HttpHeaders headers) throws Exception { onHeadersReceived0(headers); return State.CONTINUE; }
@Override public final NettyWebSocket onCompleted() throws Exception { onCompleted0(); return webSocket; }
/** * Build a {@link WebSocketUpgradeHandler} * * @return a {@link WebSocketUpgradeHandler} */ public WebSocketUpgradeHandler build() { return new WebSocketUpgradeHandler(listeners); } }
@Test(timeOut = 60000) public void onCloseWithCode() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = c.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new Listener(latch, text)).build()).get(); websocket.sendCloseFrame(); latch.await(); assertTrue(text.get().startsWith("1000"), "Expected a 1000 code but got " + text.get()); } }
@Override public final void onThrowable(Throwable t) { onThrowable0(t); for (WebSocketListener listener : listeners) { if (webSocket != null) { webSocket.addWebSocketListener(listener); } listener.onError(t); } }
private static NettyWebSocket getNettyWebSocket(NettyResponseFuture<?> future) throws Exception { return getWebSocketUpgradeHandler(future).onCompleted(); }
@Test(timeOut = 60000) public void sendTextMessage() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { getWebSocket(c).sendTextFrame("TEXT").get(10, TimeUnit.SECONDS); } }
@Override public void onOpen(WebSocket websocket) { websocket.sendTextFrame("ECHO"); websocket.sendTextFrame("ECHO"); }
@Test(timeOut = 60000) public void streamBytes() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { getWebSocket(c).sendBinaryFrame("STREAM".getBytes(), true, 0).get(1, TimeUnit.SECONDS); } }
@Override public void onOpen(WebSocket websocket) { websocket.sendBinaryFrame(ECHO_BYTES); websocket.sendBinaryFrame(ECHO_BYTES); }
@Test(timeOut = 60000) public void sendPongMessage() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { getWebSocket(c).sendPongFrame("PONG".getBytes()).get(10, TimeUnit.SECONDS); } }
@Test(timeOut = 60000) public void echoWSSText() throws Exception { runTest(true); }
@Test public void echoByte() throws Exception { echoByte0(false); }
@Override public final State onBodyPartReceived(HttpResponseBodyPart bodyPart) throws Exception { onBodyPartReceived0(bodyPart); return State.CONTINUE; }
public final void setWebSocket(NettyWebSocket webSocket) { this.webSocket = webSocket; setWebSocket0(webSocket); }
@Override public final State onStatusReceived(HttpResponseStatus responseStatus) throws Exception { onStatusReceived0(responseStatus); return responseStatus.getStatusCode() == SWITCHING_PROTOCOLS_101 ? State.CONTINUE : State.ABORT; }
@Test public void streamText() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { getWebSocket(c).sendTextFrame("STREAM", true, 0).get(1, TimeUnit.SECONDS); } }
@Test(timeOut = 60000) public void echoWSText() throws Exception { runTest(false); }
@Test public void echoByteCompressed() throws Exception { echoByte0(true); }