怎么在SpringBoot中创建一个RSocket服务器
导读:本文共4625.5字符,通常情况下阅读需要15分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 首先,检查是否安装了以下必备组件:Java8或更高版本的JavaSDK(要检查,请在终端使用Java-version)一个工作的javaide(我正在使用IntelliJ IDEA)包含克隆或提取的演示代码示例的文件夹。Linux Bash/ZSH shell(如果您是Windows用户,请查看下面的注释)如果您是Windows用户,请切换到Microsoft针... ...
目录
(为您整理了一些要点),点击可以直达。首先,检查是否安装了以下必备组件:
Java8或更高版本的JavaSDK(要检查,请在终端使用Java-version)
一个工作的javaide(我正在使用IntelliJ IDEA)
包含克隆或提取的演示代码示例的文件夹。
Linux Bash/ZSH shell(如果您是Windows用户,请查看下面的注释)
如果您是Windows用户,请切换到Microsoft针对Linux的Windows子系统。
现在,将下载的项目文件夹设置为终端中的当前目录:
在终端中,下载JAR文件如下:
稍后您将使用此客户机与RSocket服务器进行对话,但现在,通过如下方式调用help命令来测试它是否正常工作:
您应该会看到下面这样的一些输出(我已经截断了),解释了命令的用法和选项。
把这个终端窗口开着,你以后会需要的。
在IDE中打开rsocket服务器项目并检查代码。如您所见,在springboot中支持RSocket服务器所需的代码非常少。以下是一些亮点:
项目文件
在项目的pom.xml文件中,您可以看到Spring Boot RSocket服务器所需的<dependencies>。之所以使用SpringBootVersion2.2.5.RELEASE,是因为在撰写本文时,该版本具有最适合生产的RSocket特性。该项目还依赖于lombok和springbootstartersocket库。Lombok为Java数据类添加了构造函数、getter、setter和equals,还简化了对日志等内容的访问。RSocket的springbootstarter将RSocket与springboot集成在一起,并在运行时自动为您配置一些RSocket基础设施。
应用程序属性
在application.properties文件中,RSocket服务器的TCP端口被设置为7000,Spring Boot的延迟初始化功能被打开。
消息类
第一个更详细的类叫做Message.java。这个Lombok@Data类用于对客户机和服务器(或者“requester”和“responder”,如果您愿意的话)之间的请求和响应消息进行建模。这个类看起来像这样…
使用这个类,您可以说一条消息来自何处(它的来源),它打算使用哪种消息传递样式(交互),以及消息序列中的序列号(它的索引)。Lombok通过提供构造函数、getter、setter、toString和hashcode实现来简化代码。
控制器类
RSocket服务器控制器代码可以在RSocketController.java文件中找到。这个类被注释为Spring@Controller,这本质上意味着它声明了服务端点(在本例中为RSocket endpoints)。
在类中,有一个名为requestResponse()的方法,它接受单个消息对象(请求)并返回单个消息对象(响应)。
您会注意到,这个requestResponse()方法用@MessageMapping(“request-response”)注释修饰。此注释声明任何包含请求-响应的RSocket路由的元数据的消息都应该由此方法处理。稍后从客户端发送请求消息时,您将使用此路由。
你注意到这和Spring的REST控制器有什么不同吗?对于REST控制器,URL路径映射(如/hello)用于将HTTP调用与其处理程序方法相关联。
这就是代码。我们试试看。
在第二个终端窗口中,保持现有终端窗口处于打开状态,将rsocket server文件夹设置为当前目录。然后使用以下命令构建并运行RSocket服务器:
或者,如果愿意的话,可以在javaide中使用“Build”和“Run”命令。
接下来,您将使用在步骤1中下载并测试的RSocket client rsc.jar向正在运行的服务器发送一条消息。返回到原来的终端窗口,在那里有--help文本并发出以下命令:
您将注意到该命令声明了一个RSocket消息路由(这是通过添加--route选项并指定路由的名称来实现的)。在本例中,路由是请求-响应,它与RSocketController.java中请求-响应处理程序方法中声明的@MessageMapping匹配。
当命令运行时,您将在终端窗口中看到一些调试信息,解释在请求-响应交互期间发生的事情。它看起来像这样:
您看到的调试输出被分成三个“消息帧”。第一个消息帧被标记为Metadata。在本例中,它显示发送到服务器的路由元数据(请求-响应)。第二帧显示客户机发送给服务器的数据消息(一个JSON字符串)。第三帧显示服务器返回给客户机的响应消息(也是一个JSON字符串)。
在最后一行,您可以看到来自服务器的JSON格式的响应被单独打印出来,确认我们的命令消息已被服务器成功接收和确认:
oot创建RSocket服务器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
怎么在SpringBoot中创建一个RSocket服务器的详细内容,希望对您有所帮助,信息来源于网络。