websocket #1

scribbling 2011. 10. 28. 18:40

이미 long polling이 대세인 상태에서, WebSocket이 앞으로 대세가 될지는 모르겠다.
수많은 웹 게임은 short polling 으로, 일부 웹 게임 또는 웹채팅은 long polling으로, flashsocket을 이용한 streaming 방식을 websocket이 대체하기는 많은 시간이 흘러야 하지 않을까?

websocket을 브라우져에서 지원하는 현황(http://caniuse.com/#search=socket)을 보더라도 당장 쓰기가 쉽지 않다. 


  
그렇다하다도, 미리 공부해도 준비하는 것도 나쁘지 않다. tcp도 보편화될때까지 많은 시간이 걸리지 않았는가? 새롭고 좋은 것들은 계속 나와도 무방하다. ㅎ

하여튼, 이런 복잡한 대안안에서 프레임워크 형태인  socket.io를 찾는 것 같다.
socket.io는 node.js의 하나의 모듈로서, websocket 뿐 아니라, flashsocket, long polling, streaming, jsonp polling을 잘 추상화하였다.

http://socket.io/ 홈페이지에 있듯이, 서버는 단순하게 80포트를 열고 socket.io만 읽으면 되며, 클라이언트는 간단하게 접속하면 되는 스크립트 프레임워크이다. 


서버 
 var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});


클라이언트
<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script> 


이 녀석은 Internet Explorer 5.5+, Safari 3+, Google Chrome 4+, Firefox 3+, Opera 10.61+,
iPhone Safari, iPad Safari, Android WebKit, WebOs WebKit 등을 지원하기 때문에
아주 현실적인 대안이 된다.

실제로도 서비스에서 많이 사용하고 있다.



인제 차근 차근 websocket에 대해서 공부해봐야지. 이제 시작..
 

'scribbling' 카테고리의 다른 글

websocket #3  (0) 2011.10.31
websocket #2 (node.js 설치)  (1) 2011.10.31
Comet에 대한 일반론  (0) 2011.10.28
글쓰기 전략  (0) 2011.10.27
요즘 Nosql 트렌드 (2011년 10)  (0) 2011.10.20
Posted by '김용환'
,