类 io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HandshakeComplete 源码实例Demo

下面列出了怎么用 io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HandshakeComplete 的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: arthas   文件: TunnelSocketFrameHandler.java

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof HandshakeComplete) {
        HandshakeComplete handshake = (HandshakeComplete) evt;
        // http request uri
        String uri = handshake.requestUri();
        logger.info("websocket handshake complete, uri: {}", uri);

        MultiValueMap<String, String> parameters = UriComponentsBuilder.fromUriString(uri).build().getQueryParams();
        String method = parameters.getFirst("method");

        if ("connectArthas".equals(method)) { // form browser
            connectArthas(ctx, parameters);
        } else if ("agentRegister".equals(method)) { // form arthas agent, register
            agentRegister(ctx, uri);
        }
        if ("openTunnel".equals(method)) { // from arthas agent open tunnel
            String clientConnectionId = parameters.getFirst("clientConnectionId");
            openTunnel(ctx, clientConnectionId);
        }
    } else {
        ctx.fireUserEventTriggered(evt);
    }
}
 

@SuppressWarnings("deprecation")
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt)throws Exception {
	if (evt == WebSocketServerProtocolHandler.ServerHandshakeStateEvent.HANDSHAKE_COMPLETE)
	{//旧版本
		log.debug("excute webSocketHandComplete……");
		webSocketHandComplete(ctx);
		ctx.pipeline().remove(this);
		log.debug("excuted webSocketHandComplete:"+ctx.pipeline().toMap().toString());
		return;
	}
	if(evt instanceof HandshakeComplete)
	{//新版本
		HandshakeComplete hc=(HandshakeComplete)evt;
		log.debug("excute webSocketHandComplete……,HandshakeComplete="+hc);
		webSocketHandComplete(ctx);
		ctx.pipeline().remove(this);
		log.debug("excuted webSocketHandComplete:"+ctx.pipeline().toMap().toString());
		return;
	}
	super.userEventTriggered(ctx, evt);
}
 
源代码3 项目: qpid-jms   文件: NettyServer.java

@Override
public void userEventTriggered(ChannelHandlerContext context, Object payload) {
    if (payload instanceof HandshakeComplete) {
        handshakeComplete = (HandshakeComplete) payload;
        handshakeCompletion.countDown();
    }
}
 
源代码4 项目: qpid-jms   文件: NettyServer.java

public HandshakeComplete getHandshakeComplete() {
    return handshakeComplete;
}
 
源代码5 项目: qpid-jms   文件: NettyWsTransportTest.java

@Test(timeout = 60 * 1000)
public void testConfiguredHttpHeadersArriveAtServer() throws Exception {
    try (NettyEchoServer server = createEchoServer(createServerOptions())) {
        server.start();

        int port = server.getServerPort();
        URI serverLocation = new URI("tcp://localhost:" + port);

        TransportOptions clientOptions = createClientOptions();
        clientOptions.getHttpHeaders().put("test-header1", "FOO");
        clientOptions.getHttpHeaders().put("test-header2", "BAR");

        Transport transport = createTransport(serverLocation, testListener, clientOptions);
        try {
            transport.connect(null, null);
            LOG.info("Connected to server:{} as expected.", serverLocation);
        } catch (Exception e) {
            fail("Should have connected to the server at " + serverLocation + " but got exception: " + e);
        }

        assertTrue(transport.isConnected());
        assertEquals(serverLocation, transport.getRemoteLocation());

        assertTrue("HandshakeCompletion not set within given time", server.awaitHandshakeCompletion(2000));
        HandshakeComplete handshake = server.getHandshakeComplete();
        assertNotNull("completion should not be null", handshake);
        HttpHeaders requestHeaders = handshake.requestHeaders();

        assertTrue(requestHeaders.contains("test-header1"));
        assertTrue(requestHeaders.contains("test-header2"));

        assertEquals("FOO", requestHeaders.get("test-header1"));
        assertEquals("BAR", requestHeaders.get("test-header2"));

        transport.close();
    }

    assertTrue(!transportClosed);  // Normal shutdown does not trigger the event.
    assertTrue(exceptions.isEmpty());
    assertTrue(data.isEmpty());
}
 
 类方法
 同包方法