WebSocket - FlashSocket


참조 URL
  1. WebSocket과 Socket
  2. Socket.io 소개
  3. Socket.io - Cross browser WebSocket for realtime apps on node.js



 WebSocket는 HTML5을 지원하는 브라우저에서만 사용할 수 있는 통신 방식이고, FlashSocket은 Flash가 설치된 브라우저에서 사용할 수 있는 통신 방식이다. WebSocket를 지원하지 않는 브라우저에서 WebSocket과 같은 방식으로 통신을 할 수 있게 지원할 수 있는 방안을 모색하던중 FlashSocket에 대해서 알게되었다. FlashSocket를 이용하여 실시간 반응 웹을 일관성 있게 개발 할 수 있을 것이다.


 WebSocket -> FlashSocket -> LongPolling -> Polling과 같은 방식으로 점점 하위 개발 방법으로 지원하여 웹 서버간의 데이터 통신을 지원하는 애플리케이션 프레임웍 개발을 진행하면 될것이다.


 WebSocket 지원 브라우저를 한번 알아 보자


[그림1] WebSocket Compatibility table 
http://caniuse.com/#feat=websockets )


 위와 같이 특정 하위 브라우저에서는 WebSocket를 사용할 수 없게 된다. 그렇다면 차선책으로 SSE(Server sent events), LongPolling, Polling과 같은 방식으로 서버와 통신을 해야 하는데 프로그램 코딩 방식이 많이 다르게 되어 Client의 코드 복잡도가 증가하게 된다. 그 대신 차선책으로 Flash가 설치된 브라우저에서 사용할 수 있는 FlashSocket를 사용해서 차선책으로 선택할 수 있는 폭을 넓힐 수 있을 것이다.


 모바일에서는 최신 모든 브라우저는 HTML5를 지원하므로 WebSocket도 지원하기에 호환성에서도 괜찮을 것으로 예상한다.


 만약 node.js 플랫폼에서 개발한다면 통신에 대해서 추상화된 라이브러리가 있다. Socket.IO에서 배포하고 있는 라이브러리는 웹 브라우저의 상태와 관계없이 일관된 방식으로 개발할 수 있도록 하고 있다.



Socket.IO에서 지원하는 방식은 아래와 같다.

  • WebSocket

  • FlashSocket

  • Ajax LongPolling

  • Ajax Multipart streaming

  • Forever IFrame

  • JSONP Polling


지원 브라우저는

  • Internet Explorer 5.5+
  • Safari 3+
  • Google Chrome 4+
  • Firefox 3+
  • Opera 10.61+
  • iPhone Safari
  • iPad Safari
  • Android WebKit
  • WebOs WebKit


[그림2] Socket.IO site


+ Recent posts