Reactor Netty
oferece clientes e servidores TCP
/ HTTP
/ UDP
/ QUIC
sem bloqueio e prontos para contrapressão baseados na estrutura Netty
.
Reactor Netty
requer Java 8 ou + para funcionar.
Com Gradle
dos repositórios repo.spring.io ou Maven Central
(somente versões estáveis):
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 "
}
Consulte a documentação de referência para obter mais informações sobre como obtê-lo (por exemplo, usando Maven
ou sobre como obter marcos e instantâneos).
Novo no Reactor Netty
? Verifique este Workshop do Reactor Netty e a documentação de referência
Aqui está um servidor HTTP
muito simples e o exemplo de cliente HTTP
correspondente
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 ();
Está com problemas com Reactor Netty
? Gostaríamos de ajudar!
reactor-netty
. Você também pode conversar com a comunidade no Gitter.Reactor Netty
em github.com/reactor/reactor-netty/issues. Reactor Netty
usa o sistema integrado de rastreamento de problemas GitHub's
para registrar bugs e solicitações de recursos. Se você quiser levantar um problema, siga as recomendações abaixo:
Reactor Netty
que você está usando, bem como seu Operating System
e versão JVM
. Consulte nosso Guia de contribuição para obter informações sobre como contribuir para Reactor Netty
.
Você não precisa construir a partir do código-fonte para usar Reactor Netty
(binários em repo.spring.io), mas se quiser experimentar o que há de melhor e mais recente, Reactor Netty
pode ser facilmente construído com o gradle wrapper. Você também precisa do JDK 1.8.
$ git clone https://github.com/reactor/reactor-netty.git
$ cd reactor-netty
$ ./gradlew build
Se você deseja publicar os artefatos em seu repositório Maven
local, use:
$ ./gradlew publishToMavenLocal
https://projectreactor.io/docs/netty/release/api/
Reactor Netty
é um software de código aberto lançado sob a licença Apache 2.0