Close

spring3 websocket 예제

세마틴 /웹 소켓 테스트에서 새로운 릴리스에 대한 알림을 원하십니까? 스프링 프레임워크 버전 3.x를 사용하여 웹 소켓을 설정하는 한 가지 방법을 보여 주는 작은 웹앱입니다. 이 예제에서는 구성된 대상에 전송된 출력 메시지를 나타내기 위해 OutputMessage라는 다른 모델 개체를 만듭니다. 수신 메시지에서 가져온 보낸 사람과 메시지 텍스트로 개체를 채우고 타임스탬프를 보강합니다. connect() 기능은 SockJS 및 stomp.js를 사용하여 SockJS 서버가 연결을 기다리는 “/gs-guide-websocket”에 대한 연결을 엽니다. 연결이 성공하면 클라이언트는 “/topic/greetings” 대상을 구독하며, 여기서 서버는 인사말 메시지를 게시합니다. 해당 대상에서 인사말을 받으면 DOM에 단락 요소를 더하여 인사말 메시지를 표시합니다. registerStompEndpoints() 메서드는 “/gs-guide-websocket” 끝점을 등록하므로 WebSocket을 사용할 수 없는 경우 대체 전송을 사용할 수 있도록 SockJS 대체 옵션을 사용할 수 있습니다. SockJS 클라이언트는 “/gs-guide-websocket”에 연결하고 사용 가능한 최상의 전송(웹소켓, xhr 스트리밍, xhr-polling 등)을 사용하려고 시도합니다. 선택한 프로젝트 디렉터리에서 다음 하위 디렉터리 구조를 만듭니다. 예를 들어, mkdir -p src/main/java/hello 를 *nix 시스템에서 사용: 일반적인 사용 사례는 앱에 채팅처럼 여러 사용자가 서로 통신하는 경우일 수 있습니다.

우리는 우리의 예에서 간단한 채팅 클라이언트를 구축 할 것입니다. 이 HTML 파일은 웹 소켓을 통해 STOMP를 사용하여 서버와 통신하는 데 사용되는 SockJS 및 STOMP 자바 스크립트 라이브러리를 가져옵니다. 또한 클라이언트 응용 프로그램의 논리가 포함된 app.js를 여기에 가져오고 있습니다. 웹 소켓을 지원하는 Tomcat 7과 어떻게 작동하는지 보는 것은 흥미로울 것입니다. 아래 예제에서는 일치 메시지 POJO에서 JSON 형식에 대한 인코더입니다. 이 처리를 수행하는 데 사용되는 API는 Java EE 7 : JSON 행렬 (JSON-P)에 대한 자바 API와 함께 출시 된 새로운 API입니다.이 예제에서는 Websocket 종속성이 필요합니다. 또한 Gradle을 사용하려고 하므로 Gradle 프로젝트를 생성하도록 변경하려고 합니다. 예제 코드는 GitHub 프로젝트에서 찾을 수 있습니다. 디버그 모드에서 클라이언트 응용 프로그램을 시작하려면 javaws -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket, 서버=y, 일시 중단=y, 주소=65099 “$HOME/다운로드/웹소켓-client.jnlp” WildFly 8: The WildFly에서 웹 소켓 테스트를 배포하고 실행할 수 있습니다.

응용 프로그램은 WebSocket 연결을 처리하기 위해 SocksJS 라이브러리와 STOMP 지원을 위한 스톰프 웹소켓 라이브러리를 사용합니다. 아래 연결 코드는 WebSocket 채널을 만들고 이를 사용하여 STOMP 클라이언트를 만듭니다. WebSocket이 연결되면 서버의 푸시 메시지에 대해 콜백이 등록됩니다. 메시지는 JSON에서 직렬화되어 사용자에게 표시됩니다. com.example.websocketdemo 패키지에서 WebSocketConfigurationr 인터페이스를 구현하는 WebSocketConfiguration라는 새 클래스를 만듭니다. 이 문서에서는 구체적인 예제를 통해 WebSocket 프로토콜, HTML5 WebSocket API 및 Java EE 7과 함께 릴리스된 WebSocket용 Java API를 소개했습니다. 대기와 같은 Java 프레임워크에서 WebSocket을 사용할 수 있었지만 표준이 부족했습니다. websocket-server.war 파일을 구축하려면 maven 명령 mvn -Pmycert 패키지를 실행합니다 (settings.xml에서 만든 프로필을 사용하십시오). 이 게시물은이 프레임 워크와 내 첫 번째 응용 프로그램이기 때문에 AngularJS에 대한 자습서가 아닙니다. 그러나 클라이언트 측에서 여러 일치 항목을 처리하는 빠른 솔루션이었습니다.