
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 publishToMavenLocalhttps://projectreactor.io/docs/netty/release/api/
Reactor Netty — это программное обеспечение с открытым исходным кодом, выпущенное по лицензии Apache 2.0.