2013-08-09 3 views
12

Если я хотел перевести приложение моего узла, которое использует socket.io в приложении Ruby on Rails, какие опции для замены socket.io? (По существу ищет сокет-сервер для Ruby)Что такое Ruby-эквивалент Node.js 'socket.io?

http://socket.io/

план перевести бланк: http://www.tokbox.com/blog/creating-chat-roulette-with-node-js-socket-io-and-opentok/

+1

На самом деле вы можете иметь Node.JS на своем сервере Rails и использовать Socket.io (Node.JS отлично подходит для работы с веб-сайтами) – MrYoshiji

+0

@MrYoshiji Я подозревал, что был способ сделать это, не возражаете ли вы разработать? Я предположил, что можно каким-то образом передавать данные между серверами ... XML? JSON? но я не уверен, как – Pinky

ответ

7

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

Дополнительные параметры можно получить через realtime web tech guide.

+0

спасибо за ссылку, вы знакомы с Cramp? http://cramp.in/ – Pinky

+0

К сожалению, я не знаком с Cramp. – leggetter

1

Вы посмотрели на Plezi framework?

Вы можете использовать его либо как отдельный каркас, либо augment Rails/Sinatra by adding websocket functionality.

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

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

широковещательного/эхо приложение 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.

1

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

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

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

У Rails 5 теперь есть ActionCable, что означает, что веб-порты теперь стандартно с Rails!

+2

PubNub сейчас * очень * дорогой для работы в Интернете. Если вы получаете менее 100 уникальных очков в день, вы в порядке на бесплатный план, но переходите к этому, и вы подходите к их самому низкому плану при ** $ 149/mo **. Превысите этот план, и вы доходите до ** $ 399/мес **. Это отличается от того, что было год назад, когда у них было всего лишь $ 15/мес. – deefour