Что такое Ruby-эквивалент Node.js 'socket.io?

Если я хотел перевести приложение node, использующее socket.io в приложение Ruby on Rails, какие опции для замены socket.io? (По сути, ищет сервер сокетов для Ruby)

http://socket.io/

Планируйте перевод приложения ниже: http://www.tokbox.com/blog/creating-chat-roulette-with-node-js-socket-io-and-opentok/

Ответ 1

Я бы рекомендовал реализацию Faye Ruby как прочный серверный компонент реального времени. Это не прямой порт socket.io, но предоставляет вам инфраструктуру реального времени и некоторые хорошо определенные концепции обмена сообщениями, которые помогут вам переносить большинство приложений реального времени.

Дополнительные параметры можно найти в в режиме реального времени в веб-технологиях.

Ответ 2

Посмотрели ли вы на схему Plezi?

Вы можете использовать его либо как отдельную структуру, либо добавить Rails/Sinatra, добавив функциональность websocket.

Он работает с сервером Iodine и поддерживает собственные веб-соединения, маршруты RESTful и потоковое HTTP-потоки, поэтому легко иметь резервную позицию, такую ​​как как долгое вытягивание, очень похоже на socket.io, когда сетевые сокеты не работают.

Это интересно и легко разрабатывать с и имеет встроенную поддержку Redis, поэтому позволяет транслировать websocket между процессами и машинами... хотя она все еще находится в разработке, она полна потенциала.

Приложение Broadcast/echo WebSocket может выглядеть так:

require 'plezi'

class Echo

  def index
    "this is an echo server - use websockets to connect. test with: https://www.websocket.org/echo.html"
  end

  def on_message data
    _echo data
    broadcast :_echo, data
  end

  def _echo data
    response << data
  end
end

Plezi.route '/', Echo

Фактически вы можете ввести код в консоль irb, и сервер начнет с момента выхода из irb с помощью команды exit.

Ответ 3

Я очень рекомендую Pubnub, у него много оберток, включая ruby.

Документация очень проста в использовании, и у них много обучающих программ.

Я использовал Pubnub для многих проектов рельсов, включая проекты с малиновым пирогом.

В Rails 5 теперь встроен ActionCable, что означает, что теперь веб-узлы являются стандартными с Rails!