Search in sources :

Example 6 with LoggerChannelOpenListener

use of com.firenio.component.LoggerChannelOpenListener in project baseio by generallycloud.

the class TestLoadServer method main.

public static void main(String[] args) throws Exception {
    Options.setBufAutoExpansion(AUTO_EXPANSION);
    Options.setEnableEpoll(ENABLE_EPOLL);
    Options.setEnableUnsafeBuf(ENABLE_UNSAFE_BUF);
    IoEventHandle eventHandle = new IoEventHandle() {

        @Override
        public void accept(Channel ch, Frame f) throws Exception {
            String text = f.getStringContent();
            if (BUFFERED_WRITE) {
                ByteBuf buf = ch.getAttribute(WRITE_BUF);
                if (buf == null) {
                    buf = ch.allocate();
                    ByteBuf temp = buf;
                    ch.setAttribute(WRITE_BUF, buf);
                    ch.getEventLoop().submit(() -> {
                        ch.writeAndFlush(temp);
                        ch.setAttribute(WRITE_BUF, null);
                    });
                }
                byte[] data = text.getBytes(ch.getCharset());
                buf.writeInt(data.length);
                buf.writeBytes(data);
            } else {
                f.setString(text, ch);
                ch.writeAndFlush(f);
            }
        }
    };
    NioEventLoopGroup group = new NioEventLoopGroup(SERVER_CORE_SIZE);
    group.setMemoryCapacity(1024 * 512 * MEM_UNIT * SERVER_CORE_SIZE);
    group.setWriteBuffers(WRITE_BUFFERS);
    group.setMemoryUnit(MEM_UNIT);
    group.setEnableMemoryPool(ENABLE_POOL);
    ChannelAcceptor context = new ChannelAcceptor(group, 8300);
    context.addProtocolCodec(new LengthValueCodec());
    context.setIoEventHandle(eventHandle);
    if (ENABLE_SSL) {
    // context.setSslPem("localhost.key;localhost.crt");
    }
    context.addChannelEventListener(new LoggerChannelOpenListener());
    if (ENABLE_WORK_EVENT_LOOP) {
        context.setExecutorGroup(new ThreadEventLoopGroup("ep", 1024 * 256 * CLIENT_CORE_SIZE));
    }
    context.bind();
}
Also used : IoEventHandle(com.firenio.component.IoEventHandle) LengthValueCodec(com.firenio.codec.lengthvalue.LengthValueCodec) ThreadEventLoopGroup(com.firenio.concurrent.ThreadEventLoopGroup) Frame(com.firenio.component.Frame) Channel(com.firenio.component.Channel) ChannelAcceptor(com.firenio.component.ChannelAcceptor) ByteBuf(com.firenio.buffer.ByteBuf) NioEventLoopGroup(com.firenio.component.NioEventLoopGroup) LoggerChannelOpenListener(com.firenio.component.LoggerChannelOpenListener)

Example 7 with LoggerChannelOpenListener

use of com.firenio.component.LoggerChannelOpenListener in project baseio by generallycloud.

the class TestSimpleHttpClient method main.

@Test
public void main() throws Exception {
    Options.setEnableEpoll(true);
    Waiter<String> w = new Waiter<>();
    ChannelConnector context = new ChannelConnector("firenio.com", 443);
    SslContext sslContext = SslContextBuilder.forClient(true).build();
    context.addProtocolCodec(new ClientHttpCodec());
    context.addProtocolCodec(new WebSocketCodec());
    context.setIoEventHandle(new IoEventHandle() {

        @Override
        public void accept(Channel ch, Frame frame) {
            ClientHttpFrame res = (ClientHttpFrame) frame;
            System.out.println();
            System.out.println(new String(res.getBytesContent()));
            System.out.println();
            Util.close(context);
            w.call(new String(res.getBytesContent()), null);
        }
    });
    context.addChannelEventListener(new LoggerChannelOpenListener());
    context.setSslContext(sslContext);
    long start = Util.now();
    Channel ch = context.connect(3000);
    ch.writeAndFlush(new ClientHttpFrame("/test?p=2222"));
    w.await(3000);
    System.out.println(Util.past(start));
    Assert.assertEquals("yes server already accept your message :) {p=2222}", w.getResponse());
}
Also used : IoEventHandle(com.firenio.component.IoEventHandle) Frame(com.firenio.component.Frame) ClientHttpFrame(com.firenio.codec.http11.ClientHttpFrame) Channel(com.firenio.component.Channel) LoggerChannelOpenListener(com.firenio.component.LoggerChannelOpenListener) ChannelConnector(com.firenio.component.ChannelConnector) ClientHttpCodec(com.firenio.codec.http11.ClientHttpCodec) Waiter(com.firenio.concurrent.Waiter) ClientHttpFrame(com.firenio.codec.http11.ClientHttpFrame) SslContext(com.firenio.component.SslContext) WebSocketCodec(com.firenio.codec.http11.WebSocketCodec) Test(org.junit.Test)

Example 8 with LoggerChannelOpenListener

use of com.firenio.component.LoggerChannelOpenListener in project baseio by generallycloud.

the class TestSimpleHttpClient2 method main.

// telnet 192.168.133.134 8080
public static void main(String[] args) throws Exception {
    String host = "www.baidu.com";
    String url = "/plaintext";
    host = "firenio.com";
    host = "127.0.0.1";
    // host = "fe80::a793:9577:4396:8ca6";
    // host = "www.baidu.com";
    // host = "api.weixin.qq.com";
    // host = "192.168.1.103";
    int port = 1443;
    port = 8300;
    // port = 443;
    ChannelConnector context = new ChannelConnector(host, port);
    context.addProtocolCodec(new ClientHttpCodec());
    context.addProtocolCodec(new WebSocketCodec());
    context.setIoEventHandle(new IoEventHandle() {

        @Override
        public void accept(Channel ch, Frame frame) throws Exception {
            ClientHttpFrame res = (ClientHttpFrame) frame;
            System.out.println();
            System.out.println(new String(res.getBytesContent()));
            System.out.println();
        // Util.close(context);
        }
    });
    context.addChannelEventListener(new ChannelEventListenerAdapter() {

        @Override
        public void channelOpened(Channel ch) throws Exception {
            throw new IOException();
        }
    });
    context.addChannelEventListener(new LoggerChannelOpenListener());
    if (port == 1443 || port == 443) {
        context.setSslContext(SslContextBuilder.forClient(true).build());
    }
    Channel ch = context.connect(999999);
    ClientHttpFrame f = new ClientHttpFrame(url, HttpMethod.GET);
    // f.setRequestHeader(HttpHeader.Host, host);
    // f.setContent("abc123".readBytes());
    ch.write(f);
    ch.writeAndFlush(f);
}
Also used : IoEventHandle(com.firenio.component.IoEventHandle) Frame(com.firenio.component.Frame) ClientHttpFrame(com.firenio.codec.http11.ClientHttpFrame) Channel(com.firenio.component.Channel) IOException(java.io.IOException) ChannelEventListenerAdapter(com.firenio.component.ChannelEventListenerAdapter) IOException(java.io.IOException) LoggerChannelOpenListener(com.firenio.component.LoggerChannelOpenListener) ChannelConnector(com.firenio.component.ChannelConnector) ClientHttpCodec(com.firenio.codec.http11.ClientHttpCodec) ClientHttpFrame(com.firenio.codec.http11.ClientHttpFrame) WebSocketCodec(com.firenio.codec.http11.WebSocketCodec)

Example 9 with LoggerChannelOpenListener

use of com.firenio.component.LoggerChannelOpenListener in project baseio by generallycloud.

the class TestHttp2Server method main.

public static void main(String[] args) throws Exception {
    IoEventHandle eventHandleAdaptor = new IoEventHandle() {

        @Override
        public void accept(Channel ch, Frame frame) throws Exception {
            frame.write("Hello World", ch);
            ch.writeAndFlush(frame);
        }
    };
    NioEventLoopGroup group = new NioEventLoopGroup();
    group.setMemoryCapacity(1024 * 1024 * 4);
    group.setMemoryUnit(512);
    group.setEnableMemoryPool(true);
    ChannelAcceptor context = new ChannelAcceptor(group, 443);
    context.addProtocolCodec(new Http2Codec());
    context.setIoEventHandle(eventHandleAdaptor);
    // context.setApplicationProtocols(new String[]{"h2", "http/1.1"});
    context.addChannelEventListener(new LoggerChannelOpenListener());
    context.bind();
}
Also used : IoEventHandle(com.firenio.component.IoEventHandle) Frame(com.firenio.component.Frame) Channel(com.firenio.component.Channel) ChannelAcceptor(com.firenio.component.ChannelAcceptor) NioEventLoopGroup(com.firenio.component.NioEventLoopGroup) Http2Codec(com.firenio.codec.http2.Http2Codec) LoggerChannelOpenListener(com.firenio.component.LoggerChannelOpenListener)

Example 10 with LoggerChannelOpenListener

use of com.firenio.component.LoggerChannelOpenListener in project baseio by generallycloud.

the class TestLengthValueServer method main.

public static void main(String[] args) throws Exception {
    IoEventHandle eventHandleAdaptor = new IoEventHandle() {

        @Override
        public void accept(Channel ch, Frame f) throws Exception {
            String text = f.getStringContent();
            f.setContent(ch.allocateWithSkipHeader(1));
            f.write("yes server already accept your message:", ch);
            f.write(text, ch);
            ch.writeAndFlush(f);
        }
    };
    ChannelAcceptor context = new ChannelAcceptor(8300);
    context.addChannelEventListener(new LoggerChannelOpenListener());
    context.setIoEventHandle(eventHandleAdaptor);
    context.addProtocolCodec(new LengthValueCodec());
    context.bind();
}
Also used : IoEventHandle(com.firenio.component.IoEventHandle) LengthValueCodec(com.firenio.codec.lengthvalue.LengthValueCodec) Frame(com.firenio.component.Frame) Channel(com.firenio.component.Channel) ChannelAcceptor(com.firenio.component.ChannelAcceptor) LoggerChannelOpenListener(com.firenio.component.LoggerChannelOpenListener)

Aggregations

LoggerChannelOpenListener (com.firenio.component.LoggerChannelOpenListener)28 Channel (com.firenio.component.Channel)26 Frame (com.firenio.component.Frame)24 IoEventHandle (com.firenio.component.IoEventHandle)24 ChannelConnector (com.firenio.component.ChannelConnector)17 LengthValueCodec (com.firenio.codec.lengthvalue.LengthValueCodec)14 ChannelAcceptor (com.firenio.component.ChannelAcceptor)10 LengthValueFrame (com.firenio.codec.lengthvalue.LengthValueFrame)9 NioEventLoopGroup (com.firenio.component.NioEventLoopGroup)7 WebSocketCodec (com.firenio.codec.http11.WebSocketCodec)5 ProtobaseCodec (com.firenio.codec.protobase.ProtobaseCodec)5 Waiter (com.firenio.concurrent.Waiter)5 ClientHttpCodec (com.firenio.codec.http11.ClientHttpCodec)4 ClientHttpFrame (com.firenio.codec.http11.ClientHttpFrame)4 ProtobaseFrame (com.firenio.codec.protobase.ProtobaseFrame)4 HttpFrame (com.firenio.codec.http11.HttpFrame)3 ChannelAliveListener (com.firenio.component.ChannelAliveListener)3 ChannelEventListenerAdapter (com.firenio.component.ChannelEventListenerAdapter)3 ByteBuf (com.firenio.buffer.ByteBuf)2 HttpCodec (com.firenio.codec.http11.HttpCodec)2