假设我有一个用于聊天消息的简单Websocket处理程序:
@Component
public class ReactiveWebSocketHandler implements WebSocketHandler {
@Override
public Mono<Void> handle(WebSocketSession webSocketSession) {
final Flux<WebSocketMessage> message = webSocketSession
.receive()
.map(webSocketMessage -> webSocketMessage.getPayloadAsText())
.map(name -> "Hello, " + name + "!")
.map(greetings -> webSocketSession.textMessage(greetings));
return webSocketSession.send(message);
}
}
一般来说,这里需要做些什么,因为它将使用rsocket协议?
Spring WebFlux中的RSocket控制器比WebSocketHandler看起来更像RestController。所以上面的例子很简单:
@Controller
public class RSocketController {
@MessageMapping("say.hello")
public Mono<String> saHello(String name) {
return Mono.just("server says hello " + name);
}
}
这等效于requestResponse
方法。
如果此答案不能使您满意,请描述更多您想要实现的目标。