标签: spring-rsocket

在传统的基于 Servlet 的 Spring 应用程序中使用 Spring RSocket

如果不混合这两种变体,是否可以在“传统”的基于 servlet 的 Spring 应用程序中使用Spring 的 RSocket 集成,而不必牺牲 Spring 根据文档提供的功能?

如果是这样,怎么办?有什么陷阱需要注意吗?

目标是允许现有的基于 Servlet 的 Spring 应用程序通过 RSocket 与各种客户端通信。服务器端既不需要也不需要完全反应式的背压体验。必须启动一个与 servlet 容器一起运行的单独的基于 Netty 的服务器是可以接受

为了解决评论中提出的问题,有一些我特别关心的功能:

  • 声明式事务支持是否适用于通过 RSocket 传入的请求,而无需使用 R2DBC?根据Spring 的反应式事务,命令式事务管理和反应式事务管理存在显着差异。
  • Spring Security“只是”工作吗?或者是否需要特殊配置,例如,用于@PreAuthorize由应用程序的基于 servlet 的部分基于 RSocket 的部分调用的方法?

java spring spring-security spring-boot spring-rsocket

5
推荐指数
1
解决办法
183
查看次数

使用 RSocket-Java for Spring Rsocket Server 的 rsocket 路由元数据

如何设置路由元数据(在服务器使用 Spring Boot Rsocket 时仅使用 RSocket-Java 的有效负载。

Flux<Payload> s = connection.flatMapMany(requester -> requester.requestStream(DefaultPayload.create("Some Message")))

服务器正在使用@MessageMapping("/route")

spring-boot rsocket spring-rsocket

3
推荐指数
1
解决办法
1103
查看次数

spring-rsocket 支持在 @ConnectMapping 注解方法中返回 RejectedSetupException 吗?

我按照 spring-rsocket-demo 项目来完成我的代码。我在服务器端代码中添加了一些身份验证逻辑,如下所示。您可以看到我在身份验证逻辑“CLIENT.add(requester)”之后抛出了一个异常。我在 spring-rsocket-demo 项目中执行名为“testRequestGetsResponse”的测试方法,发现无法收到异常。如何处理 @ConnectMapping 注释方法中的设置有效负载并在需要时返回 RejectedSetupException。


        requester.rsocket()
                .onClose()
                .doFirst(() -> {
                    // Add all new clients to a client list
                    log.info("Client: {} CONNECTED.", client);
                    //throw Exception during process setup payload
                    //my authentication code.
                    try {
//                        CLIENTS.add(requester);
                        throw new RuntimeException();
                    } catch (Exception exception) {
                        throw exception;
                    }
                })
                .doOnError(error -> {
                    // Warn when channels are closed by clients
                    log.warn("Channel to client {} CLOSED", client);
                })
                .doFinally(consumer -> {
                    // Remove disconnected clients from the client list …
Run Code Online (Sandbox Code Playgroud)

spring-boot rsocket spring-rsocket

3
推荐指数
1
解决办法
479
查看次数