Найкращий інструмент Ruby on Rails WebSocket [закрито]


81

Я розпочав проект у Rails 3, і мені потрібно додати сповіщення (наприклад, Facebook). Найкращим способом було б використовувати WebSocket для пристроїв підтримки, таких як iPad, але я не можу знайти жодного хорошого інструменту, який би легко втілив його в Rails. Я знайшов Pusherapp, але ціни на них надзвичайні, а також я не думаю, що надавати свої дані сторонній компанії було б розумно. Отже, потрібні речі:

  • Відкрите джерело
  • Якісь канали підтримують
  • Помічники для Rails (і робота з Rails 3)

Відповіді:


80

Якщо ви шукаєте звичайну реалізацію WebSocket, то EM-WebSocket , мабуть, найкращий. Якщо вам потрібна підтримка резервного копіювання без спалаху (наприклад, старих телефонів чи iPhone 3G), спробуйте Socket.IO-rack .

Для повнофункціональних реалізацій, таких як Pusher (з аутентифікацією та каналами), у вас є два варіанти відкритого джерела : Socky та Juggernaut .

Socky - це чисто рубіновий проект, що використовує EM-WebSocket (наприклад, штовхач), і він має кілька приємних інструментів для Rails. З іншого боку, Juggernaut має більше історії (і більше користувачів), але нова версія була переписана на Node.JS (клієнт все ще базується на рубіні) і вимагає Redis. Обидва повинні працювати нормально.


4
Для тих, хто зацікавився, Джаггернаут зараз застарів . Автор рекомендує замість цього використовувати події на стороні сервера HTML5 та надає приємний коментар у посиланні про припинення дії оголошення.
Джефф Дікі

3
Як продовження коментаря @ Jeff, Rails 4 забезпечує вбудовану підтримку SSE через модуль ActionController :: Streaming. Документи тут: api.rubyonrails.org/classes/ActionController/Streaming.html
user456584

Йод HTTP / WebSocket сервер є розширенням C для Ruby , який забезпечує рідної паб / к південь, а також підключення до Redis. Він використовується фреймворком plezi , який також може використовуватися як проміжне програмне забезпечення в Rails.
Myst

19

Погляньте на фей .



3
Станом на грудень 2012 року Фей має вищий рейтинг популярності, згідно Ruby Toolbox - ruby-toolbox.com/categories/HTTP_Pub_Sub .
Себастьян Паттен

1
Фай насправді використовує веб-сокети та реді, як це робив Джаггернаут?
JohnMerlino


9

Інший варіант, який може задовольнити ваші потреби, але трохи більш езотеричний, - це скористатися одним із серверів додатків Jruby і скористатися однією з реалізацій веб-сокетів Java. Відомо, що пристань (база для Тринідаду ) має найкращу підтримку веб-розеток. Іншим варіантом (що досить класно) є використання сервера обміну повідомленнями з обгортками веб-розетки для кінцевих точок повідомлення. Як приклад, Torquebox (спеціальний сервер додатків Jruby / Rails) має вбудовану підтримку HornetMQ, яка, в свою чергу, має підтримку веб-сокетів .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.