List of usage examples for io.netty.handler.codec.http.websocketx WebSocket13FrameDecoder WebSocket13FrameDecoder
public WebSocket13FrameDecoder(boolean expectMaskedFrames, boolean allowExtensions, int maxFramePayloadLength)
From source file:game.net.websocket.WebSocketServerInitializer.java
License:Apache License
@Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); if (sslCtx != null) { pipeline.addLast(sslCtx.newHandler(ch.alloc())); }// w w w . j a va2s. c om pipeline.addLast(new HttpServerCodec()); pipeline.addLast(new HttpObjectAggregator(65536)); pipeline.addLast(new WebSocket13FrameDecoder(true, true, 65536)); pipeline.addLast(new WebSocket13FrameEncoder(false)); pipeline.addLast(new WebSocketFrameAggregator(65536)); pipeline.addLast(new IdleStateHandler(60, 60, 60)); pipeline.addLast(new WebSocketServerHandler()); }
From source file:io.vertx.core.http.WebSocketTest.java
License:Open Source License
@Test public void testCleanServerClose() { waitFor(2);/*from w w w .ja v a 2 s . c om*/ server = vertx.createHttpServer(); server.websocketHandler(ws -> { ws.closeHandler(v -> { complete(); }); }); server.listen(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(v1 -> { client = vertx.createHttpClient(); handshake(res -> { NetSocketInternal so = (NetSocketInternal) res; so.channelHandlerContext().pipeline().addBefore("handler", "encoder", new WebSocket13FrameEncoder(true)); so.channelHandlerContext().pipeline().addBefore("handler", "decoder", new WebSocket13FrameDecoder(false, false, 1000)); int status = 4000 + TestUtils.randomPositiveInt() % 100; String reason = TestUtils.randomAlphaString(10); so.writeMessage(new CloseWebSocketFrame(status, reason)); Deque<Object> received = new ArrayDeque<>(); so.messageHandler(received::add); so.closeHandler(v2 -> { assertEquals(1, received.size()); Object msg = received.getFirst(); assertEquals(msg.getClass(), CloseWebSocketFrame.class); CloseWebSocketFrame frame = (CloseWebSocketFrame) msg; assertEquals(status, frame.statusCode()); assertEquals(reason, frame.reasonText()); complete(); }); }); })); await(); }
From source file:io.vertx.core.http.WebSocketTest.java
License:Open Source License
@Test public void testCleanClientClose() { waitFor(2);/* ww w. j a v a 2 s. c o m*/ server = vertx.createHttpServer(); server.requestHandler(req -> { NetSocketInternal so = (NetSocketInternal) handshake(req); if (so != null) { so.channelHandlerContext().pipeline().addBefore("handler", "encoder", new WebSocket13FrameEncoder(false)); so.channelHandlerContext().pipeline().addBefore("handler", "decoder", new WebSocket13FrameDecoder(true, false, 1000)); Deque<Object> received = new ArrayDeque<>(); so.messageHandler(received::add); int status = 4000 + TestUtils.randomPositiveInt() % 100; String reason = TestUtils.randomAlphaString(10); so.writeMessage(new CloseWebSocketFrame(status, reason)); so.closeHandler(v -> { assertEquals(1, received.size()); Object msg = received.getFirst(); assertEquals(msg.getClass(), CloseWebSocketFrame.class); CloseWebSocketFrame frame = (CloseWebSocketFrame) msg; assertEquals(status, frame.statusCode()); assertEquals(reason, frame.reasonText()); complete(); }); } }); server.listen(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(v1 -> { client = vertx.createHttpClient(); client.webSocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/chat", onSuccess(ws -> { ws.closeHandler(v -> { complete(); }); })); })); await(); }