6

Quiero crear una aplicación de chat en vivo pública utilizando los carriles 3.Ruby on Rails 3 - Pública chat en vivo

he encontrado algunos ejemplos en los carriles 2. Cualquiera le puede decir un buen ejemplo/tutorial para desarrollar un vivo aplicación de chat usando raíles 3.

+0

¿Desea punteros o un tutorial? –

Respuesta

3

Empezaría revisando Ilya Grigorik's em-synchony + examples y mirando el código de la gema del servidor de chat privado Hector.

7

Me encontré con varias barricadas cuando traté de implementar un sistema de chat público y privado en la aplicación my rails 3. Miré faye, juggernaut, node.js y más. Finalmente, después de probar varios enfoques, pude implementar un sistema que funciona a la perfección:

1) Empecé siguiendo la guía de video para faye mensajería en Railscast 260 mencionada por Devin M. Pude configurar rápidamente una aplicación de rieles que mensajes persistentes y un servidor de chat que envió estos nuevos mensajes a todos los clientes. El mayor problema fue la seguridad. No tenía control sobre el acceso al servidor de chat.

2) Esto me llevó a utilizar la joya del pub privado por Ryan Bates en Railscast 316 - que ayuda a proteger su servidor faye al verificar la firma del cliente. Esto funcionó para proteger el servidor, pero me encontré con problemas al intentar verificar el usuario real con mi sistema de autenticación y agregar la funcionalidad 'quién está en línea'. Trabajé en una hack de pub privado para pasar los detalles del usuario al autenticar pero no pude hacer que las cosas funcionaran sin problemas.

3) Al final decidí mover el servidor de chat al pusher, una API alojada para aplicaciones en tiempo real. Seguí este tutorial en how to create a real-time survey in rails para tener una idea de cómo configurar las cosas. Aunque no directamente sobre la configuración de un sistema de chat, este tutorial junto con lo que ya había configurado desde Railscasts (y los documentos de empuje fáciles de leer), me permitió configurar rápidamente una aplicación de chat de rieles seguros 3, completada con autenticación , 'quién está en línea', mensajes de estado y más. La mejor parte es ... No tengo que lidiar con la administración del servidor de chat.

Espero que esto ayude a alguien a pasar por el mismo proceso que yo.

+0

Esta fue una publicación increíblemente útil, gracias. – daspianist

+0

Does pusher también guarda (archiva) los mensajes enviados, de modo que pueda recuperar los mensajes anteriores cuando el usuario inicie sesión en un nuevo dispositivo. Por ejemplo, puedo consultar y recuperar mensajes de los últimos dos días, una semana o un mes para un usuario o grupo específico. –

+1

@MuhammadNabeelArif - No creo que su API actual ofrezca esa característica (pero puedo estar equivocado). Para lograr los mismos resultados, acabo de guardar los mensajes en el archivo db y luego borré los mensajes anteriores después de 2 días. – yellowaj