Mejor herramienta WebSocket de Ruby on Rails

Comencé proyecto en Rails 3 y necesito agregar notificaciones (como Facebook uno). La mejor manera sería usar WebSocket para dispositivos de soporte como iPad, pero no puedo encontrar ninguna herramienta buena para implementarlo fácilmente en Rails. Encontré Pusherapp, pero los precios son abrumadores, y tampoco creo que sea prudente proporcionar mis datos a una empresa de terceros. Entonces cosas necesarias:

  • Fuente abierta
  • Algún tipo de soporte de canales
  • Helpers for Rails (y trabajando con Rails 3)

Si está buscando una implementación simple de WebSocket, entonces EM-WebSocket es probablemente el mejor. Si desea soporte para la recuperación sin flash (como teléfonos antiguos o iPhone 3G), debe probar Socket.IO-rack .

Para implementaciones completas como Pusher (con autenticación y canales) tiene dos opciones de fuente abierta: Socky y Juggernaut .

Socky es un proyecto de Ruby puro que usa EM-WebSocket (como empujador) y tiene algunas buenas herramientas para Rails. Por otro lado, Juggernaut tiene más historial (y más usuarios de atm.) Pero la nueva versión se reescribió en Node.JS (el cliente todavía está basado en ruby) y requiere Redis. Ambos deberían funcionar bien.

Echa un vistazo a faye .

EM-WebSocket es probablemente la mejor implementación de Ruby. De hecho, Pusherapp está basado en él. Se integra con EventMachine .

Aquí hay un tutorial sobre cómo usarlo.

Otra opción que puede satisfacer sus necesidades pero es un poco más esotérica es ir con uno de los servidores de aplicaciones Jruby y usar una de las implementaciones de Java websockets. Jetty (la base de Trinidad ) es conocido por tener el mejor soporte de websockets disponible. Otra opción (que es muy buena) es usar un servidor de mensajería con envoltorios de websocket para puntos finales de mensajes. Como ejemplo, Torquebox (un servidor de aplicaciones Jruby / Rails dedicado) tiene soporte incorporado para HornetMQ, que a su vez tiene soporte para websockets .