• 授权协议:Apache
  • 开发厂商:-
  • 软件语言:Java
  • 更新日期:2018-08-21
BaseIO

BaseIO是基于java nio开发的一款可快速构建网络通讯项目的异步IO框架,其以简单易用的API和优良的性能深受开发者喜爱。超过200W QPS的处理速度 wrk压测

BaseIO 基于 Java NIO 的异步 IO 框架 项目简介

BaseIO是基于java nio开发的一款可快速构建网络通讯项目的异步IO框架,其以简单易用的API和优良的性能深受开发者喜爱。项目特色支持协议扩展,已知的扩展协议有:Redis协议(仅作测试),示例:详见 {baseio-test}LineBased协议(基于换行符的消息分割),示例:详见 {baseio-test}FixedLength协议(固定长度报文头),支持传输文本和二进制数据HTTP1.1协议(lite),示例: https://www.generallycloud.com/WebSocket协议,示例: https://www.generallycloud.com/web-socket/chat/index.htmlProtobase(自定义协议),支持传输文本和二进制数据及混合数据轻松实现断线重连(轻松实现心跳机制)支持SSL(jdkssl,openssl)压力测试超过200W QPS的处理速度(Http1.1,I7-4790,16.04.1-Ubuntu)  wrk压测快速入门Maven引用:  <dependency>
   <groupId>com.generallycloud</groupId>
   <artifactId>baseio-all</artifactId>
   <version>3.2.6.RELEASE</version>
  </dependency>Simple Server:  public static void main(String[] args) throws Exception {
      IoEventHandle eventHandle = new IoEventHandle() {
          @Override
          public void accept(NioSocketChannel channel, Frame frame) throws Exception {
              FixedLengthFrame f = (FixedLengthFrame) frame;
              frame.write("yes server already accept your message:", channel.getCharset());
              frame.write(f.getReadText(), channel.getCharset());
              channel.flush(frame);
          }
      };
      ChannelContext context = new ChannelContext(8300);
      ChannelAcceptor acceptor = new ChannelAcceptor(context);
      context.addChannelEventListener(new LoggerChannelOpenListener());
      context.setIoEventHandle(eventHandle);
      context.setProtocolCodec(new FixedLengthCodec());
      acceptor.bind();
  }Simple Client:  public static void main(String[] args) throws Exception {
      IoEventHandle eventHandle = new IoEventHandle() {
          @Override
          public void accept(NioSocketChannel channel, Frame frame) throws Exception {
              FixedLengthFrame f = (FixedLengthFrame) frame;
              System.out.println();
              System.out.println("____________________" + f.getReadText());
              System.out.println();
          }

      };
      ChannelContext context = new ChannelContext(8300);
      ChannelConnector connector = new ChannelConnector(context);
      context.setIoEventHandle(eventHandle);
      context.addChannelEventListener(new LoggerChannelOpenListener());
      context.setProtocolCodec(new FixedLengthCodec());
      NioSocketChannel channel = connector.connect();
      FixedLengthFrame frame = new FixedLengthFrame();
      frame.write("hello server!", channel);
      channel.flush(frame);
      ThreadUtil.sleep(100);
      CloseUtil.close(connector);
  }更多样例详见 {baseio-test}

BaseIO 基于 Java NIO 的异步 IO 框架 相关推荐

BaseIO 基于 Java NIO 的异步 IO 框架 评论内容