2012-08-03 4 views
2

WebSocket Server를 생성하기 위해 node.js와 socket.io를 함께 사용하기 전에 나는 부두가있는 WebSockets에 익숙하지 않습니다. 하지만 다른 요구 사항으로 인해 Java WebSocketServlet/WebSocket을 사용해야하고, 지금까지 Maven, Jetty 및 Jetty-WebSocket 플러그인을 사용하여 잘 수행하고있었습니다. 내 문제는, 내가 java 솔루션에 대한 socket.io의 socket.on (event, fn) 구현과 비교할만한 것을 찾지 못했다는 것입니다. 나는 "new", "addthis", "jointhat"와 같은 클라이언트로부터 해고 된 다른 이벤트에 반응 할 동일한 가능성을 갖고 싶습니다. 일부 데이터는 json 또는 POST param으로 보냅니다. socket.io와 똑같이 할 수있는 가능성이나 WebSocket 구현이 있습니까? 서버 측에서 이벤트 처리를 구현할 수있는 "채널"작업을 수행 하시겠습니까?jetty WebSocket 커스텀 이벤트

답변

2

는 웹 소켓 사양에는 사용자 정의 이벤트가 없으며, Socket.IO에는 사용자 정의 이벤트를 지원하는 자신의 프로토콜 다음 - https://github.com/LearnBoost/socket.io-spec

은 내가 아는 한, 듣기, 사용자 정의 이벤트를 지원하는 어떠한 자바 구현이 없다합니다.

그러나 Atmosphere를 사용하면 Java 웹 서버에서 socket.io 클라이언트를 사용할 수 있지만 테스트하지는 않았습니다. https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Socket.IO

Jetty의 WebSocketServlet을 직접 제어하려면 클라이언트 측에서 jQuery 소켓과 같은 다른 라이브러리를 사용할 수 있습니다. - https://github.com/flowersinthesand/jquery-socket/tree/master/samples/jetty-ws

1

부두의 websocket 구현은 websocket의 기본 처리에만 관련됩니다. (단편화와)

  • 문자 메시지 (단편화와)

    • 바이너리 메시지
    • 핑/퐁
    • 닫기

    가있었습니다 홀수 다양한 새로운 웹 소켓의 하위 프로토콜을 지원하는 몇 가지 간단한 토론 (이름), 예 : WAMP (웹 소켓 응용 프로그램 메시징 프로토콜). 그러나 그것들은 기본 websocket 레이어 위에 구축 될 것입니다.

    또 다른 선택은 CometD과 같은 전체 채널 API를 사용하여 websocket을 사용하도록 설정하고 이전 통신 형식으로 폴백하지 않도록 설정하는 것입니다.