FireNio is an io framework which can build network project fast, it based on java nio, it is popular with Developers because of simple and easy of use APIs and high-performance.
- support protocol extend, known:
- LengthValue protocol, for detail {firenio-test}
- HTTP1.1 protocol(lite), for detail: https://www.firenio.com/
- WebSocket protocol, for detail: https://www.firenio.com/web-socket/chat/index.html
- Protobase(custom) support text or binay, for detail {firenio-test}
- easy to support reconnect (easy to support heart beat)
- supported ssl (JdkSSL & OpenSSL)
- TFB load test
- TFB Benchmark(Physical)
- TFB Benchmark(Cloud)
- Maven Dependency
<dependency>
<groupId>com.firenio</groupId>
<artifactId>firenio-all</artifactId>
<version>1.3.6</version>
</dependency>
- Simple Server:
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();
}
- Simple Client:
public static void main(String[] args) throws Exception {
ChannelConnector context = new ChannelConnector("127.0.0.1", 8300);
IoEventHandle eventHandle = new IoEventHandle() {
@Override
public void accept(Channel ch, Frame f) throws Exception {
System.out.println();
System.out.println("____________________" + f.getStringContent());
System.out.println();
context.close();
}
};
context.setIoEventHandle(eventHandle);
context.addChannelEventListener(new LoggerChannelOpenListener());
context.addProtocolCodec(new LengthValueCodec());
Channel ch = context.connect(3000);
LengthValueFrame frame = new LengthValueFrame();
frame.setString("hello server!", ch);
ch.writeAndFlush(frame);
}
- HTTP Demo:https://www.firenio.com/index.html
- WebSocket Chat Demo:https://www.firenio.com/web-socket/chat/index.html
(server based on firenio,client based on: https://github.com/socketio/socket.io/ ) - WebSocket Rumpetroll Demo:https://www.firenio.com/web-socket/rumpetroll/index.html
(server based on firenio,client based on:https://github.com/danielmahal/Rumpetroll )
FireNio is released under the Apache License 2.0.