Я не могу понять, как подключить WebSocketHandlerAdapter к сетевому серверу реактора.
Требования: я хочу запустить netty-сервер реактора и присоединить конечные точки http (REST) и конечные точки websocket к одному и тому же серверу. Я просмотрел документацию и несколько примеров демонстрационного приложения, упомянутых в документации. Они показывают, как прикрепить HttpHandlerAdapter к HttpServer с помощью функции newHandler (). Но когда дело доходит до веб-сокетов, они снова переключаются на использование примеров загрузки Spring и аннотаций. Я не могу найти, как подключить веб-сокеты с помощью функциональных конечных точек.
Пожалуйста, укажите мне правильное направление, как это реализовать. 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
}