Websocket은 나열한 모든 클라이언트에서 사용할 수 있습니다. 일반적으로 Atmoshphere와 같은 프레임 워크는 다른 유형의 전송 (예 : 웹 소켓 대신 longpolling)으로 다운 그레이드하여 차이를 추상화합니다. 웹 소켓은 롱 폴링이 해결하려고하는 표준, 즉 서버 사이드 푸시입니다.
Dropwizard 0.7.0 용 부두에 웹 소켓을 만들었지 만 DW google 그룹에 연결된 스레드에 대한 읽기 권한이 있습니다.
final ServletRegistration.Dynamic websocket = environment.servlets().addServlet(
"websocket",
new MyWebSocketServlet(
environment.getObjectMapper(),
environment.metrics(),
configuration.getKafkaConfig()
)
);
websocket.setAsyncSupported(true);
websocket.addMapping("/websocket/*");
그리고 웹 소켓 서블릿 :
public class MyWebSocketServlet extends WebSocketServlet{
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(MyWebSocketEndpoint.class);
}
}
그리고 마지막은
는 기본적으로 사용자가 웹 소켓 세션을 협상 DW에 웹 소켓 - 서블릿을 추가 http://www.eclipse.org/jetty/documentation/9.0.6.v20130930/websockets.html 및
https://groups.google.com/d/msg/dropwizard-user/doNCx_35urk/5PIvd8_NHIcJ를 참조하십시오 부두 websocket libs에 의해 instanciated 귀하의 종점 :
@WebSocket
public class MyWebSocketEndpoint {
@OnWebSocketMessage
public void onMessage(Session session, String s) throws IOException {
session.getRemote().sendString("Returned; "+s);
}
}
작동 예이다 https://github.com/stakkTraze/dropwizard-atmosphere – chriswynnyk
I이 원인 위 링크에 댓글 바와 Atmo 서블릿이 DW에서 사용되는 저지에서 설정을 스캔 할 때 두 개의 저어지 환경이 있습니다. (https://groups.google.com/d/msg/dropwizard-user/doNCx_35urk/s85wj0KMm2YJ) – polve