최고의 Ruby on Rails WebSocket 도구 [닫기]


81

Rails 3에서 프로젝트를 시작했고 Facebook과 같은 알림을 추가해야합니다. 가장 좋은 방법은 iPad와 같은 지원 장치에 WebSocket을 사용하는 것이지만 Rails에서 쉽게 구현할 수있는 좋은 도구를 찾을 수 없습니다. Pusherapp을 찾았지만 가격이 압도적이며 제 데이터를 제 3 자 회사에 제공하는 것이 현명하지 않다고 생각합니다. 그래서 필요한 것 :

  • 오픈 소스
  • 어떤 종류의 채널 지원
  • Rails 용 도우미 (및 Rails 3 작업)

답변:


80

일반 WebSocket 구현을 검색하는 경우 EM-WebSocket 이 가장 좋습니다. 플래시가 아닌 폴백 (예 : 오래된 휴대폰 또는 iPhone 3G)을 지원하려면 Socket.IO-rack을 시도해야합니다 .

Pusher (인증 및 채널 포함)와 같은 모든 기능을 갖춘 구현의 경우 SockyJuggernaut의 두 가지 오픈 소스를 선택할 수 있습니다 .

Socky는 EM-WebSocket (푸셔와 같은)을 사용하는 순수한 루비 프로젝트이며 Rails를위한 멋진 도구가 있습니다. 반면에 Juggernaut는 더 많은 역사 (그리고 더 많은 사용자 atm.)를 가지고 있지만 새 버전은 Node.JS (클라이언트는 여전히 루비 기반 임)로 다시 작성되었으며 Redis가 필요합니다. 둘 다 잘 작동합니다.


4
관심있는 사람들을 위해 Juggernaut 는 이제 더 이상 사용되지 않습니다 . 저자는 대신 HTML5 서버 측 이벤트 를 사용할 것을 권장 하고 사용 중단 알림 링크에 멋진 설명을 제공합니다.
Jeff Dickey

3
@Jeff의 의견에 따라 Rails 4는 ActionController :: Streaming 모듈을 통해 SSE에 대한 내장 지원을 제공합니다. 여기 문서 : api.rubyonrails.org/classes/ActionController/Streaming.html
user456584

요오드 HTTP / 웹 소켓 서버는 기본 펍 / 하위뿐만 아니라 레디 스 연결을 제공 루비에 C의 확장입니다. Rails에서 미들웨어로도 사용할 수 있는 plezi 프레임 워크 에서 사용됩니다.
Myst



9

요구 사항을 충족 할 수 있지만 약간 더 난해한 또 다른 옵션은 Jruby 앱 서버 중 하나를 사용하고 Java 웹 소켓 구현 중 하나를 사용하는 것입니다. Jetty ( 트리니다드 의 기지 )는 최고의 웹 소켓 지원을 제공하는 것으로 알려져 있습니다. 또 다른 옵션 (매우 멋지다)은 메시지 엔드 포인트에 웹 소켓 래퍼가있는 메시징 서버를 사용하는 것입니다. 예를 들어 Torquebox (전용 Jruby / Rails 앱 서버)에는 HornetMQ에 대한 지원이 내장되어 있으며, 이는 차례로 websocket지원합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.