【发布时间】:2018-06-09 13:10:12
【问题描述】:
我无法找到将 WebSocketHandlerAdapter 附加到 reactor netty 服务器的方法。
要求: 我想启动一个 reactor netty 服务器并将 http (REST) 端点和 websocket 端点附加到同一台服务器。我已经阅读了文档和文档中提到的一些示例演示应用程序。他们展示了如何使用 newHandler() 函数将 HttpHandlerAdapter 附加到 HttpServer。但是当涉及到 websockets 时,他们会切换回使用 spring boot 和注释示例。我无法找到如何使用功能端点附加 websocket。
请为我指明如何实现这一点的正确方向。 1.如何将websocket适配器连接到netty服务器? 2.我应该使用HttpServer还是TcpServer?
注意: 1.我没有使用弹簧靴。 2. 我没有使用注释。 3. 尝试仅使用功能性 webflux 端点来实现这一点。
示例代码:
public HandlerMapping webSocketMapping()
{
Map<String, WebSocketHandler> map = new HashMap<>();
map.put("/echo", new EchoTestingWebSocketHandler());
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setUrlMap(map);
mapping.setOrder(-1);
return mapping;
}
public WebSocketHandlerAdapter wsAdapter()
{
HandshakeWebSocketService wsService = new HandshakeWebSocketService(new ReactorNettyRequestUpgradeStrategy());
return new WebSocketHandlerAdapter(wsService);
}
protected void startServer(String host, int port)
{
HttpServer server = HttpServer.create(host, port);
server.newHandler(wsAdapter()).block(); //how do I attach the websocket adapter to the netty server
}
【问题讨论】:
标签: spring websocket reactor-netty