Подтвердить что ты не робот

Лучший инструмент Ruby on Rails WebSocket

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

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

Ответ 1

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

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

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

Ответ 2

Взгляните на faye.

Ответ 3

EM-WebSocket, вероятно, лучшая реализация Ruby. Фактически, Pusherapp построен на нем. Он интегрируется с EventMachine.

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

Ответ 4

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