programming/node.js2013.01.13 14:00

nodejs에 관심 있으신 분이라면 socket.io에 대한것은 알고 계실텐데요. LearnBoost에서 engine.io라는 것도 만들었습니다.


engine.io가 socket.io에 비해 조금 늦게 공개되긴 했지만 socket.io 내부적으로는 engine.io를 쓰고 있었다고 하네요.  말 그대로 엔진인 셈이죠.


그러다보니 engine.io는 socket.io에 비해 정말정말 기본적인 기능만 제공합니다. socket.io는 logging이나 broadcast같이 다양한 기능을 추가적으로 만든거고 engine.io는 socket과 polling을 추상화한 connect, send, receive, disconnect 기능만 제공합니다.


그 외에 차이점으로는 아래와 같이 접속타입에 대한 시도 순서가 기본적으로 다르다고 하네요.

 socket.io  engine.io

접속시에 websocket이나 flashsocket같은 realtime socket을 우선적으로 시도합니다.

접속시에 xhr-polling이나 htmlfile같은 polling 방식을 우선적으로 시도합니다.


engine.io의 컨셉은 websocket이 좋은 기술이긴 하지만, 현재 시점에서 비지니스 요구사항을 충족시키엔 무리라고 보고 polling 방식에 기준을 맞춘거라고 합니다.


아울러 websocket에 대한 장점과 단점에 대해서도 기술해놓았는데 대충 번역해보니

websocket의 장점

 websocket의 단점

  • 서버 퍼포먼스
  • 로드밸런싱, 네트워크트래픽, 가벼운 파서기능
  • 사용자경험으로 인한 쉬운 개발

  • 많은 기업들이 websocket 차단
  • 몇몇 개인방화벽이나 백신프로그램들도 websocket 차단
  • Heroku같은 많은 PaaS들이 websocket 지원 안함


따라서 리얼타임 웹 어플리케이션을 만드시는 분은 websocket의 장 단점을 잘 파악하여 선택하시는게 좋을 것 같습니다.


참고로 websocket서버만 만드실 분은 websocket.io를 이용해도 좋을것 같습니다.


참고 : https://github.com/LearnBoost/engine.io

참고 : https://github.com/LearnBoost/socket.io

참고 : https://github.com/LearnBoost/websocket.io

저작자 표시 동일 조건 변경 허락
신고
Posted by 귀뫄뉘

댓글을 달아 주세요