поддержка веб-сокетов

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

Открытый исходный кодПоддержка некоторых каналовПомощники для Rails (и работа с Rails 3)

Ответы на вопрос(4)

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

ЭМ-WebSocket вероятно лучшая реализация Ruby. На самом деле, Pusherapp построен на нем. Он интегрируется сEventMachine.

Вот учебник о том, как его использовать.

Решение Вопроса

ЭМ-WebSocket наверное лучше. Если вам нужна поддержка не флэш-памяти (например, старые телефоны или iPhone 3G), попробуйтеSocket.IO стойки.

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

Socky - это чистый проект ruby, использующий EM-WebSocket (например, pusher), и в нем есть несколько хороших инструментов для Rails. С другой стороны, у Джаггернаута больше истории (и больше пользователей), но новая версия была переписана на Node.JS (клиент по-прежнему основан на ruby) и требует Redis. Оба должны работать нормально.

 Jeff Dickey28 янв. 2014 г., 19:45
Для тех, кто заинтересован, Джаггернауттеперь устарела, Автор рекомендует использовать HTML5Серверные события вместо этого, и предоставляет хороший комментарий в ссылке объявления об устаревании.
 user45658417 мар. 2014 г., 22:21
Как продолжение комментария @ Jeff, Rails 4 предоставляет встроенную поддержку SSE через модуль ActionController :: Streaming. Документы здесь:api.rubyonrails.org/classes/ActionController/Streaming.html
 Myst12 мар. 2018 г., 14:20
йод HTTP / Websocket сервер - это расширение C для Ruby, которое обеспечивает собственный паб / саб, а также подключение Redis. Используетсяплези рамки, который также может быть использован в качестве промежуточного программного обеспечения в Rails.
 JohnMerlino28 июл. 2013 г., 17:02
Использует ли Fay на самом деле веб-сокеты и редис, как сделал Джаггернаут?
 Sebastian Patten13 дек. 2012 г., 18:51
Faye имеет более высокий рейтинг популярности по состоянию на декабрь 2012 года, согласно Ruby Toolbox -ruby-toolbox.com/categories/HTTP_Pub_Sub.
 Kris29 авг. 2012 г., 22:45

Ваш ответ на вопрос