本文介绍如何使用带有Spring Boot的RSocket。
什么是RSocket?
RSocket是一种双向消息驱动的通信协议。是超越标准的请求/响应模型的高级通信流程。您可以使用单个消息、消息流或无响应实现响应。RSocket允许您使用以下传输协议进行客户端和服务器端的通信:
- TCP
- WebSocket
- Argon
- HTTP/2流
如果您想了解更多信息,可以观看Ben Hale 在Spring I / 0 2019年的演讲。
RSocket TCP服务器
RSocket服务器是整个项目中最简单的部分。您需要做的就是转到Spring Initializr并选择Spring Boot,至少是版本2.2.0.M4。然后,选择RSocket作为依赖项。
要使用TCP协议配置RSocket服务器,请添加下行到application.properties。此配置将在端口7000处打开RSocket。
spring.rsocket.server.transport=tcp |
最后一步是添加一些控制器,您已准备好使用服务器。
@Controller |
RSocket TCP客户端
客户端应用程序非常相似。转到Spring Initializr并用RSocket和引导它Spring Reactive Web。
要通过TCP端口7000与RSocket通信,您需要创建一个RSocketRequester。对于TCP协议,它看起来像这样。
@Configuration |
客户端应用程序可以是使用HTTP的标准响应式Web应用程序。要测试与已配置服务器的通信,请添加以下端点。
@RestController |
RSocket WebSocket服务器
如果你想使用RScoket的WebSocket,那么需添加依赖Spring Reactive Web,这样Rsocket端口和Web端口一样,不再使用配置中端口,呢需要定义RScoket的映射端点,比如这里使用/rsocket,在application.properties配置:
spring.rsocket.server.transport=websocket |
你之前为TCP服务器配置的控制器就无需改变。
RSocket WebSocket客户端
如果你的服务器已经配置了端口8080,在application.properties改变客户端端口:
server.port=8081
为WebSocket传输协议配置客户端,类似之前TCP协议一样:
@Configuration |
之前为TCP创建的控制器不需改变。
Spring Boot使创建使用RSocket的应用程序变得简单。我希望这些例子告诉你如何做到这一点。版本2.2.0.M4尚未准备好生产,但您可以在您的反应式应用程序中试用它。