关于如何将SpringWebFlux Websocket作为注释的问题,请回答。
我正在从事一个Springboot Webflux Websocket项目,该项目处理restful api和Websocket。
要强调的是,这是一个单独的Spring网络流量项目。不是一个Springboot启动WebSocket,不是一个Springboot rSocket,不是一个Springboot酒吧子。
该项目如下:
@SpringBootApplication
public class EchoApplication {
public static void main(String[] args) {
SpringApplication.run(EchoApplication.class, args);
}
}
@RestController
public class EchoController {
@GetMapping(value = "/getEcho")
public Mono<String> getEcho() {
return Mono.just("echo");
}
}
public class EchoHandler implements WebSocketHandler {
@Override
public Mono<Void> handle(WebSocketSession session) {
return session.send( session.receive().map(msg -> "RECEIVED ON SERVER :: " + msg.getPayloadAsText()).map(session::textMessage));
}
}
@Configuration
public class EchoConfiguration {
@Bean
public EchoHandler echoHandler() {
return new EchoHandler();
}
@Bean
public HandlerMapping handlerMapping() {
Map<String, WebSocketHandler> map = new HashMap<>();
map.put("/echo", echoHandler());
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setUrlMap(map);
mapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
return mapping;
}
@Bean
public WebSocketHandlerAdapter handlerAdapter() {
return new WebSocketHandlerAdapter(webSocketService());
}
@Bean
public WebSocketService webSocketService() {
return new HandshakeWebSocketService(new ReactorNettyRequestUpgradeStrategy());
}
}
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
</dependencies>
如您所见,在这个项目中,有一个“传统”注释@GetMapping(value=“/getEcho”)。许多Spring项目使用这种样式,并将其作为注释公开(事件rscocket、发布/订阅等)
如何拥有:
@Bean
public HandlerMapping handlerMapping() {
Map<String, WebSocketHandler> map = new HashMap<>();
map.put("/echo", echoHandler());
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setUrlMap(map);
作为注解,某种@Websolket映射(/echo)将有助于呈现一种统一和更干净的方式来查看路线?
非常感谢。
Spring Team目前不支持此功能,也没有计划支持基于路由的Web套接字。
路由是 Blade 中的核心,路由是一个 Http 请求处理的最小的最小单元,我们需要在程序中创建好 URL 和路由的映射关系。 在Blade中注册一个路由有2种方式,在下面我们详细讲解。 路由规则 在 Blade 的路由规则不是特别复杂,我们追求简洁与优雅,不希望把事情做的更麻烦。 所以路由规则分为这么几种: 静态路由 资源文件路由 Restful路由 静态路由是最容易理解的,也就是我写了 /h
注解路由 新版本提供了一种最简单的路由注册方法(可以完成基本的路由定义),默认关闭,如果需要开启在应用的app.php配置文件中设置: // 使用注解路由 'route_annotation' => true, 然后只需要直接在控制器类的方法注释中定义(通常称之为注解路由),例如: <?php namespace app\index\controller; class
问题内容: 是否有一个现有的库会将我的路由实例简化为路径数组? 范例 : 输出量 我可以编写一个减少代码的功能,用几行代码来解决这个问题,但是我想知道是否有一个现有的库可以帮我做到这一点,并照顾使用React Router表示路由的不同方式。 问题答案: 由于找不到任何东西,我最终为此创建了一个库… https://github.com/alansouzati/react-router-to- a
是否有任何方法可以像durandal 2.0那样在angular中创建子路由器? 路由器将控制ngView中的内容。在ngView中,我想制作一些不同于路由器的子路由器,并在ngView中控制一些内容。 当childRouter更改时,整个网站的url都应该更改。 使用childRouter的原因是,不同的ngView中的childRouter不同,我需要组织它们。
我已经使用FastAPI创建了一个简单的API,我正在尝试将URL作为任意的<code>路径</code>参数传递给FastAPI路由。 当我测试它时,它不起作用并抛出错误。我以这种方式测试它: