Reactor Netty
propose des clients et serveurs TCP
/ HTTP
/ UDP
/ QUIC
non bloquants et prêts à contre-pression basés sur le framework Netty
.
Reactor Netty
nécessite Java 8 ou + pour fonctionner.
Avec Gradle
à partir des référentiels repo.spring.io ou Maven Central
(versions stables uniquement) :
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 "
}
Consultez la documentation de référence pour plus d'informations sur la façon de l'obtenir (par exemple, en utilisant Maven
ou sur la façon d'obtenir des jalons et des instantanés).
Nouveau sur Reactor Netty
? Consultez cet atelier Reactor Netty et la documentation de référence
Voici un serveur HTTP
très simple et l'exemple de client HTTP
correspondant
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 ();
Vous rencontrez des problèmes avec Reactor Netty
? Nous aimerions vous aider !
reactor-netty
. Vous pouvez également discuter avec la communauté sur Gitter.Reactor Netty
sur github.com/reactor/reactor-netty/issues. Reactor Netty
utilise le système de suivi des problèmes intégré GitHub's
pour enregistrer les bogues et les demandes de fonctionnalités. Si vous souhaitez soulever un problème, veuillez suivre les recommandations ci-dessous :
Reactor Netty
que vous utilisez, ainsi que votre Operating System
et la version JVM
. Consultez notre Guide de contribution pour plus d'informations sur la contribution à Reactor Netty
.
Vous n'avez pas besoin de construire à partir des sources pour utiliser Reactor Netty
(binaires dans repo.spring.io), mais si vous souhaitez essayer la dernière et la meilleure version, Reactor Netty
peut être facilement construit avec le wrapper gradle. Vous avez également besoin du JDK 1.8.
$ git clone https://github.com/reactor/reactor-netty.git
$ cd reactor-netty
$ ./gradlew build
Si vous souhaitez publier les artefacts dans votre référentiel Maven
local, utilisez :
$ ./gradlew publishToMavenLocal
https://projectreactor.io/docs/netty/release/api/
Reactor Netty
est un logiciel Open Source publié sous la licence Apache 2.0