블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2010.05.21 16:57

[ Pusher/WebSockets ] 아얄씨로그에의 Pusher 적용에 대해

2010/05/21 - [IT/Perl] - [ Perl/Catalyst ] 새로 태어난(?) 아얄씨 로그뷰어

 앞의 엔트리에서 가볍게 Pusher 를 다뤘는데, 그거에 대한 자세한 얘기를 해보겠습니다. 

 요즘 어딜봐도 웹 이슈는 HTML5 이고, 애플은 특히 Flash 죽이기에 앞장서며 HTML5 를 강조하고 있습니다.
 그 HTML5 의 기능적인 면 중에서 짚어볼 만한게 바로 WebSockets 입니다. 여러 HTML5 를 소개한 페이지에서 WebSockets 를 다루고 있으니 자세한 내용은 그쪽을 참고하시기 바랍니다.



 Pusher 에 가입하면 app_id 등등의 인증정보를 얻을 수 있습니다. 이게 바로 Pusher 에 리퀘스트를 보낼 때 꼭 필요한 값들입니다.  Pusher 에 로그인해서 대쉬보드로 가면 기본적인 테스트를 해볼 수 있습니다. 
 그리고 WebSockets 를 지원하는 브라우저는 한정되어 있죠. 아마 WebKit 기반의 브라우저에서만 현재 지원되는 것으로 알고 있고 FF 도 차기버젼에서 지원예정인 걸로 알고 있습니다. 고로 Chrome 등을 쓰는 사람에 한정되서 사용할 수 있다는 것인데요. 하지만 Pusher 의 경우는 이를 대비해서 플래쉬로 구현된 WebSockets 을 준비해뒀습니다. (고로 Pusher 를 사용하는 한 IE 에서도 Websockets 을 쓰는 데 문제가 없는 것으로 알고 있습니다) 

  자 그럼, 저 아얄씨 로그뷰어에서 Pusher 를 사용한 것을 보자면...
 IRC 채널에 들어간 '봇'이 있고.
 IRC 채널에서 대화한 내용을 표시해주는 웹이 있고,
 그 둘을 이어주는 Pusher 가 있다고 생각하면 됩니다. (이게 WebSockets 서버)

 시나리오를 보면 @y0ngbin 이 "OS뭐에요? zzzZZZ" 라고 했을 때, IRC 봇은 그 내용을 잡습니다. 
 그리고 누가,무슨 내용을 말했는가 하는 정보를 Pusher 로 POST 해줍니다.

 아, 이때 IRC 대화내용을 표시해주는 웹에 접속해있다고 가정합니다. 이 페이지에서의 소스는 아래와 같죠. 

  
 위의 소스대로 Pusher 와 WebSockets 으로 연결됩니다. 지정한 채널과 이벤트이름에 따른(위의 봇에서 Pusher 로 POST 해준 정보) 값이 해당 이벤트로 바인드되고, 여기에서 값이 넘어오면 이런저런 처리를 해주면 됩니다.

 여러가지 WebSockets 서버 구현을 보고(Web::Hippie나.. 기타등등) 띄워보려고 했는데.. 서버 자원도 없고 해서 때려치웠습니다 =3=3

  특이사항은 처음에 Pusher 의 문서를 보고 리퀘스트 날리는 거 만들다가... 나중에 CPAN 을 보니까 WWW::Pusher 가 있어서 뻘짓했구나 라고 느꼈습니다. ..

  아무튼 리얼타임웹은 눈앞에 있고, 웹개발자들은 더욱 바빠질 것이고, 이것이 새로운 사업아이템으로 연결이... 등등등... 앞으로 많은 공부가 필요한 시점입니다. ;ㅁ;

  위의 아얄씨 로그는 github 상에 있으니.. 필요하신 분은 참고하세요.

신고
TOTAL 488,101 TODAY 38

티스토리 툴바