Reactor Netty
предлагает неблокирующиеся и готовые к противодавлению клиенты и серверы TCP
/ HTTP
/ UDP
/ QUIC
на основе платформы Netty
.
Для работы Reactor Netty
требуется Java 8 или +.
С Gradle
из репозитория repo.spring.io или Maven Central
(только стабильные версии):
repositories {
// maven { url 'https://repo.spring.io/snapshot' }
maven { url ' https://repo.spring.io/milestone ' }
mavenCentral()
}
dependencies {
// compile "io.projectreactor.netty:reactor-netty-core:1.2.2-SNAPSHOT"
compile " io.projectreactor.netty:reactor-netty-core:1.2.1 "
// compile "io.projectreactor.netty:reactor-netty-http:1.2.2-SNAPSHOT"
compile " io.projectreactor.netty:reactor-netty-http:1.2.1 "
}
См. справочную документацию для получения дополнительной информации о ее получении (например, с помощью Maven
или о том, как получить вехи и снимки).
Впервые в Reactor Netty
? Ознакомьтесь с этим семинаром Reactor Netty и справочной документацией.
Вот очень простой HTTP
сервер и соответствующий пример HTTP
клиента.
HttpServer . create () // Prepares an HTTP server ready for configuration
. port ( 0 ) // Configures the port number as zero, this will let the system pick up
// an ephemeral port when binding the server
. route ( routes ->
// The server will respond only on POST requests
// where the path starts with /test and then there is path parameter
routes . post ( "/test/{param}" , ( request , response ) ->
response . sendString ( request . receive ()
. asString ()
. map ( s -> s + ' ' + request . param ( "param" ) + '!' )
. log ( "http-server" ))))
. bindNow (); // Starts the server in a blocking fashion, and waits for it to finish its initialization
HttpClient . create () // Prepares an HTTP client ready for configuration
. port ( server . port ()) // Obtains the server's port and provides it as a port to which this
// client should connect
. post () // Specifies that POST method will be used
. uri ( "/test/World" ) // Specifies the path
. send ( ByteBufFlux . fromString ( Flux . just ( "Hello" ))) // Sends the request body
. responseContent () // Receives the response body
. aggregate ()
. asString ()
. log ( "http-client" )
. block ();
Возникли проблемы с Reactor Netty
? Мы хотели бы помочь!
reactor-netty
. Вы также можете пообщаться с сообществом Gitter.Reactor Netty
на сайте github.com/reactor/reactor-netty/issues. Reactor Netty
использует интегрированную систему отслеживания проблем GitHub's
для регистрации ошибок и запросов функций. Если вы хотите поднять проблему, следуйте приведенным ниже рекомендациям:
Reactor Netty
, которую вы используете, а также версию вашей Operating System
и JVM
. Информацию о том, как внести свой вклад в Reactor Netty
, см. в нашем Руководстве для участников.
Вам не нужно выполнять сборку из исходного кода, чтобы использовать Reactor Netty
(бинарные файлы в repo.spring.io), но если вы хотите опробовать новейшую и лучшую версию, Reactor Netty
можно легко собрать с помощью оболочки gradle. Вам также понадобится JDK 1.8.
$ git clone https://github.com/reactor/reactor-netty.git
$ cd reactor-netty
$ ./gradlew build
Если вы хотите опубликовать артефакты в локальном репозитории Maven
используйте:
$ ./gradlew publishToMavenLocal
https://projectreactor.io/docs/netty/release/api/
Reactor Netty
— это программное обеспечение с открытым исходным кодом, выпущенное по лицензии Apache 2.0.