stomp websocket 예제

앞서 언급했듯이 STOMP를 구현하는 첫 번째 예는 주식 앱입니다. 클라이언트에서 서버로 STOMP를 통해 요청을 보내고 서버는 RabbitMQ로 메시지를 보내고 받는 반면 주식 데몬은 간헐적으로 가격을 업데이트합니다. 시작하려면 RabbitMQ 서버를 사용하여 서버에 대한 메시지를 큐에 대기합니다. 우선, 우리는 sockjs를 가져 와서 자바 스크립트 클라이언트 라이브러리를 밟아야합니다. 다음으로, 우리는 우리의 엔드 포인트와의 통신을 여는 연결() 함수를 만들 수 있습니다. 작업이 시작됩니다. 라이브러리에서 다소 처리되는 STOMP 덕분에 추가 레이어가 있습니다. UUID에 세션ID를 할당하고 클라이언트에서 메시지 이벤트를 받으면 process_frame 함수를 실행하여 수신된 프레임을 나타내는 JavaScript 개체를 가져옵니다. 전송된 명령을 처리하기 위해 프로그램은 사례 문을 사용하고 CONNECT 명령을 받으면 클라이언트가 연결이 수신되었고 이 세션의 세션id와 함께 수락됨을 알리는 STOMP 프레임을 다시 보냅니다. 장 소개는 stomp_helper.js를 언급하고 서버 코드에 도착하기 전에 STOMP 호환 프레임을 보내고 받는 데 도움이되는 라이브러리를 검토해 보겠습니다 (예 4-1). registerStompEndpoints() 메서드는 “/gs-guide-websocket” 끝점을 등록하므로 WebSocket을 사용할 수 없는 경우 대체 전송을 사용할 수 있도록 SockJS 대체 옵션을 사용할 수 있습니다. SockJS 클라이언트는 “/gs-guide-websocket”에 연결하고 사용 가능한 최상의 전송(웹소켓, xhr 스트리밍, xhr-polling 등)을 사용하려고 시도합니다.

예제 코드는 GitHub 프로젝트에서 찾을 수 있습니다. 이 명령은 Vagrantfile을 읽고 예에서 사용하기 위해 우분투 12.04 amd64 인스턴스에 RabbitMQ 서버를 설치하는 프로비저닝 스크립트를 실행합니다. 다음 코드는 명령을 완료한 후 표시되는 것과 유사한 인쇄물을 보여 주십니다. 이 출력 직후, Vagrant는 RabbitMQ를 설정하는 프로비저닝 셸 스크립트를 실행합니다: 이것은 Web-Stomp라는 새로운 플러그인을 가능하게 하고 포트 15674를 노출합니다. 토끼는 모든 WebSocket 통신에 SockJS를 사용하는 것을 표준화했으며, 5장에서 해당 라이브러리에 대해 더 자세히 설명합니다. 계속하려면 stomp.js에서 사용할 수있는 자바 스크립트 STOMP 라이브러리를 다운로드할 수 있습니다. 그런 다음 Web-Stomp 끝점을 사용하도록 클라이언트 코드를 계속 변경할 수 있습니다. STOMP 1.0 프로토콜 문서에서 보낸 모든 프레임이 null 터미네이터 ^@로 끝나거나 콘텐츠 길이 헤더가 전달되면 대신 사용됩니다. WebSocket의 단순성 으로 인해 이러한 예제에서 WebSocket 프레임 위에 STOMP 프레임을 신중하게 매핑하는 것입니다. 서버가 연결 및 인증 정보를 수락하는 경우 나중에 서버에 대한 호출에서 사용할 세션 ID가 포함된 다음을 클라이언트에 다시 전달합니다.

URL과 프로토콜이라는 두 가지 매개 변수를 사용합니다.