¿Cuál es la mejor manera de implementar aplicaciones en tiempo real usando Ruby on Rails?

Si está buscando lo básico para comenzar a construir una aplicación de ruby ​​on rails en tiempo real, puede consultar Realtime API Hub para desarrolladores de Ruby . Esto resalta los recursos en tiempo real disponibles para los desarrolladores de Ruby / Rails.


Bibliotecas Ruby / Rails en tiempo real

Actioncable: WebSockets integrados para Rails : Action Cable integra perfectamente WebSockets con el resto de su aplicación Rails. Permite que las características en tiempo real se escriban en Ruby con el mismo estilo y forma que el resto de su aplicación Rails, sin dejar de ser funcional y escalable. Es una oferta de pila completa que proporciona un marco JavaScript del lado del cliente y un marco Ruby del lado del servidor. Tiene acceso a su modelo de dominio completo escrito con Active Record o su ORM de elección.

Plezi: un marco de Ruby para aplicaciones web en tiempo real – Plezi es un marco de Ruby para aplicaciones web en tiempo real. Su nombre proviene de la palabra “placer”, ya que es un placer trabajar con Plezi. Con Plezi, puede fácilmente: Crear una aplicación web Ruby, aprovechando al máximo el enrutamiento RESTful y las características escalables de Websocket; Agregue servicios Websocket a su aplicación web existente (Rails / Sinatra o cualquier otra aplicación Ruby basada en Rack); Cree un backend fácilmente escalable para su SPA.

Pakyow: un marco web Ruby en tiempo real : Pakyow es un marco web Ruby que le permite crear experiencias fantásticas para sus usuarios sin escribir ningún código del lado del cliente. Cree aplicaciones modernas impulsadas por el servidor que no comprometan la velocidad o la usabilidad. Pakyow mantiene automáticamente su capa de presentación sincronizada con el estado del servidor. Funciona fuera de la caja sin código adicional. Cree un prototipo funcional de su proyecto con HTML simple. Más tarde, construya justo encima del prototipo sin tirarlo. Creemos que una web democrática presupone una web más simple. Pakyow optimiza la simplicidad, lo que facilita el inicio y conduce a la productividad a largo plazo.

Firehose: crea aplicaciones web Ruby en tiempo real. Creado por Poll Everywhere : Firehose es una aplicación Rack y una biblioteca JavaScript que hace posible la creación de aplicaciones web en tiempo real.

Cliente Slack Ruby: un cliente Ruby y de línea de comandos para las API de Slack Web y Real Time Messaging. – Un cliente Ruby para las API de Slack Web y RealTime Messaging. También viene con un práctico cliente de línea de comandos. Si no está familiarizado con estos conceptos, es posible que desee ver este video.

Rails en tiempo real: soporte de rails en tiempo real : a partir de mediados de 2015, el soporte para racks web nativos y escalables está disponible en Rails. Ver

ActionCable, que aterrizó en Rails 5 y probablemente se lanzará oficialmente a principios / mediados de 2016. Como tal, con el diseño de ActionCable, ni siquiera necesita un servidor pub / sub (redis) separado y Node.js funcionando para lograr un peso similar. Comunicación bidireccional en tiempo real con una gran cantidad de clientes conectados a su aplicación Rails.

Awesome Ruby: una colección de impresionantes bibliotecas, herramientas, marcos y software de Ruby: una colección clasificada por la comunidad de impresionantes bibliotecas, herramientas, marcos y software de Ruby. El rubí esencial para crear aplicaciones modernas y aplicaciones web.

Unimidi: MIDI IO para Ruby : una entrada y salida MIDI en tiempo real independiente de la plataforma para Ruby. También vea MicroMIDI que construye un DSL de mensajería MIDI completo sobre esta biblioteca.

Cramp: Marco de aplicaciones web en tiempo real en Ruby : Cramp es un marco de aplicaciones web en tiempo real totalmente asíncrono en Ruby. Está construido sobre EventMachine y está diseñado principalmente para trabajar con un mayor número de conexiones abiertas y proporcionar comunicación bidireccional full-duplex.

Render_Sync: parciales de rieles en tiempo real: parciales en tiempo real con rieles. La sincronización le permite representar parciales para modelos que, con un código mínimo, se actualizan en tiempo real en el navegador cuando se producen cambios en el servidor.


Aplicaciones web en tiempo real con Ruby on Rails

Especificaciones

  • Autor: Codescrum
  • Agosto de 2016

Recursos

  • Aplicaciones web en tiempo real con Ruby on Rails
  • Cable de acción

Sinopsis

¡Ruby on Rails se puede usar ahora para crear aplicaciones web en tiempo real listas para usar! Desde la versión 5, el marco Rails incorpora ActionCable, una implementación integrada de websocket. ActionCable es una oferta de pila completa que proporciona un marco JavaScript del lado del cliente y un marco Ruby del lado del servidor.


Aplicaciones web en tiempo real con Volt en Ruby

Especificaciones

  • Autor: Dhaivat Pandya
  • Febrero 2015

Recursos

  • Aplicaciones web en tiempo real con Volt en Ruby
  • Meteorito
  • Voltio

Sinopsis

Volt es un nuevo y elegante marco web de Ruby que tiene como objetivo difuminar la línea entre el código del cliente y el servidor. La idea básica detrás del marco es que puede escribir su código del lado del cliente (que generalmente es Javascript) en Ruby usando Opal, un tiempo de ejecución de Ruby dentro de Javascript. Además, Volt proporciona algunas buenas maneras de transmitir datos entre el lado del cliente y el lado del servidor. Si ha usado Meteor antes, Volt es una idea muy similar, pero hay muchas porciones de Meteor que Volt no tiene. Creo que Volt tiene un potencial real. A medida que las aplicaciones web se vuelven cada vez más pesadas en el lado del cliente, es difícil tener que cambiar el contexto mental entre Javascript y Ruby. Es aún más difícil descubrir cómo hacer fluir piezas simples de datos entre el cliente y el servidor. Volt puede ayudarlo a llegar rápidamente.

En este artículo, explicaré cómo crear una “aplicación” de marcadores increíblemente simple con Volt. El objetivo de este artículo es ponerte al día con algunos de los conceptos básicos y hacerte una idea de cómo funciona la división cliente / servidor en Volt. Hagámoslo.


Rails en tiempo real: Implementación de WebSockets en Rails 5 con Action Cable

Especificaciones

  • Autor: Sophie Debenedetto
  • Mayo de 2016

Recursos

  • Rails en tiempo real: Implementación de WebSockets en Rails 5 con Action Cable
  • Protocolo WebSocket
  • Cable de acción

Sinopsis

Los últimos años han visto el surgimiento de “la web en tiempo real”. Las aplicaciones web que usamos todos los días se basan en características en tiempo real, el tipo de características que le permiten ver nuevas publicaciones que aparecen mágicamente en la parte superior de sus feeds sin tener que levantarlas. un dedo.

Si bien podemos dar por sentadas esas características, representan una desviación significativa del estricto patrón de solicitud-respuesta del protocolo HTTP. La web en tiempo real, por el contrario, describe libremente un sistema en el que los usuarios reciben nueva información del servidor tan pronto como está disponible; no se requiere ninguna solicitud.

Hay una serie de estrategias y tecnologías para implementar dicha funcionalidad en tiempo real, pero el protocolo WebSocket ha estado adquiriendo importancia desde su desarrollo en 2009. Sin embargo, hasta hace muy poco, la implementación del protocolo WebSocket en Rails era difícil. No había soporte nativo, y cualquier característica en tiempo real requería la integración de bibliotecas y estrategias de terceros como Faye o encuestas de JavaScript. Así que echemos un vistazo más de cerca a WebSockets y cómo Rails 5 ha evolucionado para admitir aplicaciones en tiempo real con Action Cable.

Primero, hay algunos problemas con su pregunta. Primero, Ruby, al ser un lenguaje interpretado, no es exactamente adecuado para aplicaciones en tiempo real. En segundo lugar, Rails, al ser un complejo procesador de páginas web y ORM de base de datos, no está destinado al procesamiento en tiempo real, sino a las páginas web.

Dicho esto, ¿qué quieres decir con tiempo real? ¿Actualizar un ticker de stock cada 5 minutos? ¿Mostrar cambios de milisegundos de, por ejemplo, un monitor cardíaco? El primero está bien en Ruby, el último debe estar escrito en C o C ++ con el que Ruby puede interactuar para su visualización.

Además, si necesita conectarse a algunos datos en tiempo real, es posible que desee hacerlo directamente a través de node.js o tecnología similar, de modo que el cliente se conecte directamente a cualquier flujo en tiempo real. Por ejemplo, este enfoque está siendo utilizado por un importante operador de cable para monitorear el equipo de codificación de video y mostrar los resultados en tiempo real en una página web. De hecho, esta técnica no es estrictamente “Ruby on Rails”: no había otro componente de Rails que no fuera servir la página.