WebSocketHandlerAdapter를 원자로 네트워크 서버에 연결하는 방법을 알 수 없습니다.스프링 webflux : 웹 소켓 어댑터를 원자로 네트워크 서버에 부착하는 순수한 기능 방법
요구 사항 : 원자로 netty 서버를 시작하고 http (REST) 엔드 포인트와 websocket 엔드 포인트를 동일한 서버에 첨부하고 싶습니다. 필자는 설명서와 설명서에 언급 된 샘플 데모 응용 프로그램을 살펴 보았습니다. 그들은 newHandler() 함수를 사용하여 HttpHandlerAdapter를 HttpServer에 연결하는 방법을 보여줍니다. 그러나 웹 소켓의 경우 스프링 부트 및 주석 예제를 사용하도록 다시 전환됩니다. 기능 엔드 포인트를 사용하여 웹 소켓을 연결하는 방법을 찾을 수 없습니다.
구현 방법에 대해 올바른 방향을 알려주십시오. 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
}
감사 Oleh. SpringBoot 나 annotation을 사용하여 webflux를 기존 스프링 어플리케이션에 통합하려고 시도하고 있습니다. xml 구성 응용 프로그램 컨텍스트를 사용하거나 기능 라우팅을 사용하여이 작업을 수행해야합니다. 나는 너의 두 번째 제안을 시도 할 것이다. 이 줄은 ** (in, out) -> out.send (in.receive()) ** **라고 할 수 있습니다. 난 당신이 원자로 websocketinbound 및 webcoketoutboud 언급하고 있다고 가정합니다. 현재의 websocket 핸들러에 reactor interface를 구현해야합니까? – chirpi