티스토리 뷰

Study/Web socket

WebSocket 관련

dev ms 2016. 3. 29. 11:03
반응형

웹은 초기 탄생목적은 문서 전달과 하이퍼링크를 통한 문서 전달이다. HTTP 프로토콜은 이러한 목적에 부합하는 모델이다.

시대가 변할 수록 문서 공유에 집중할 수 없었다. 동적인 표현과 뛰어난 상호작용이 요구되었고, 이로 인해 새로운 기술이 탄생하였다. 

플래시(플랙스), 자바 애플릿(Java FX), Active X, 실버라이트 플러그인 형태로 개발되었지만 HTML5에서 'WebSocket'이 발생되었다.


웹 소켓은 웹서버와 웹 브라우저가 지속적으로 연결된 TCP 라인을 통해 실시간으로 데이터를 주고 받을 수 있도록 하는 HTML의 새로운 기능이다.

웹 소켓을 사용하면 일반적인 TCP 소켓과 같이 연결지향 양방향 전이중 통신이 가능하다.


웹소켓과 Ajax 속도 비교.

-> 웹소켓이 대략 50배 이상 좋은 성능을 보인다.


웹소켓을 사용해야되는 경우 5가지.


1. 실시간 양방향 데이터 통신이 필요한 경우.

2. 동시 접속자 수가 큰 경우.

3. 브라우저에서 TCP 기반의 통신으로 확장해야 하는 경우.

4. 개발자에게 사용하기 쉬운 API가 필요한 경우.

5. 클라우드 환경이나 웹을 넘어 SOA로 확장해야 하는 경우.


웹소켓 서버

웹소켓 서버는 일반적으로 TCP 소켓과 다른 프로토콜로 설계되어 있다. 따라서 기존 TCP 서버를 그대로 이용할 수 없고 새로 구현해야 한다.


STOMP


Simple (or Streaming) Text Oriented Message Protocol (STOMP), formerly known as TTMP, is a simple text-based protocol, designed for working with message-oriented middleware (MOM). It provides an interoperable wire format that allows STOMP clients to talk with any message broker supporting the protocol. It is thus language-agnostic, meaning a broker developed for one programming language or platform can receive communications from client software developed in another language.


Simple (or Streaming) Text Oriented Message Protocol (STOMP) 이고 예전에 TTMP라고 알려졌었다. 미들웨어를 동작하기 위한 메시지 기반의 단순 텍스트 기반 프로토콜이다. STOMP는 동시적인 Wire format을 제공하여 STOMP 클라이언트 들이 어떤 메시지를 전달 할 수 있도록 도와준다. STOMP는 그러므로 언어 독립적이다. (번역의 한계 -_-)



wire format

와이어 프로토콜은 네트워크에있는 하나 이상의 애플리케이션의 연동 수단을 제공한다. 그들은 종종 분산 객체 프로토콜을 참조하거나 함께 작동하도록 설계된 응용 프로그램을 사용합니다. 이름이 암시 하듯이,이 분산 객체 프로토콜 네트워크를 통해 연결되는 하나 또는 다수의 컴퓨터에서 다른 프로세스에서 실행.


출처 : https://en.wikipedia.org/wiki/Streaming_Text_Oriented_Messaging_Protocol


반응형