ruby on rails comet juggernaut 채팅 서버 구축
orbited보다 performance면에서 떨어지는 것 같다. 또한 flash를 이용하기 때문에 모바일 환경에서 안된다.
공식 사이트는
여기고
comet, 폴링과 비교해서 장점을 적어두는데 폴링보다 뛰어난건 확실한 것 같지만 comet보단 잘 모르겠다. flash라는게 너무 크다.
사용한 머신환경 및 버전
centOS 5
ruby 1.8.7
rails 2.3.11
gem 1.6.1
1) 필요한 gem들을 설치하자
gem install json
gem install eventmachine
gem install juggernaut
gem install maccman-juggernaut 도 해주어야 한다
2) 플러그인 설치
ruby script/plugin install git://github.com/maccman/juggernaut_plugin.git
git이 없으면 깔아야한다(git쳐보자)
3) 스크립트추가
<%= javascript_include_tag 'prototype', :juggernaut %>
jquery를 사용하려면
<%= javascript_include_tag 'json', 'juggernaut/juggernaut', 'juggernaut/jquerynaut', 'juggernaut/swfobject' %>
json 이라는 파일은 vendor/plugin/juggernaut폴더/media에 있으니까 복사
<%= juggernaut %>를 해서 초기화하자
이 코드는 vendor/plugin/juggernaut폴더/helper/juggernaut_helper.rb에 있다 적절히 수정해서 사용하자
이 코드를 넣으면 자동으로 연결이 시작된다.
4) 서버 설정
juggernaut -g juggernaut.yml 로 config파일을 만들고
config/juggernaut_hosts.yml 파일을 수정해서 서버 설정하고
juggernaut -c juggernaut.yml 로 시작한다. -d옵션을 주면 데몬으로 실행한다 기타 여러 옵션이 있으니까 찾아보자
5) 컨트롤러에서
Juggernaut.send_to_all("코드")하면 간다.
ajax로 글 쓰고 저걸로 뿌려주면 된다. 채널을 사용하는 방법은 플러그인 폴더에 README파일을 참고하자.
6) 한글
한글 설정 때문에 삽질했다. 꼭 인코딩해서 보내자.
7) 결론
완전 대충설명했다. 반응도 빠르고 리소스 잡아먹는것도 훨씬 덜하긴 하다. 근데 처음에 서버에 접속하는게 엄청 느리다.
한 5초는 걸리는 것 같다. 아직 무슨이유인지 못찾았는데.. 그리고 아이폰에서 안되는게 너무 싫다...
8) 소켓을쓰자!

덧글