Что такое 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!