1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/FireNio-firenio

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.03.2025 13:33 eddb95b

Проект FireNio

Сайт Maven Central Лицензия

FireNio — это асинхронный I/O-фреймворк, созданный на основе Java NIO, предназначенный для быстрого создания сетевых проектов. Он отличается простым и удобным API и высокой производительностью, что делает его популярным среди разработчиков.

Основные характеристики

  • Поддержка расширяемых протоколов, включая:
    • Протокол LengthValue для передачи текстовых данных
    • Упрощённый протокол HTTP 1.1 (lite), пример: https://www.firenio.com/
    • Протокол WebSocket, пример: https://www.firenio.com/web-socket/chat/index.html
    • Самостоятельно определяемые протоколы (Protobase), поддерживающие передачу как текстовых, так и двоичных данных
  • Лёгкая реализация механизма автоматического восстановления соединения (реализация механизма heartbeat)
  • Поддержка SSL (JdkSSL & OpenSSL)
  • Тестирование производительности с использованием TFB

Быстрый старт

  • Maven зависимость:
<dependency>
    <groupId>com.firenio</groupId>
    <artifactId>firenio-all</artifactId>
    <version>1.3.6</version>
</dependency>
  • Пример сервера:
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 accepted 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();
}
  • Пример клиента:
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);
}

Дополнительные примеры см. в firenio-test

Примеры и демонстрационные приложения

Лицензия

Проект FireNio распространяется под лицензией Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/FireNio-firenio.git
git@api.gitlife.ru:oschina-mirror/FireNio-firenio.git
oschina-mirror
FireNio-firenio
FireNio-firenio
master