Реализация мессенджера для рельсов?

Некоторое время я искал несколько технологий для создания простой системы обмена мгновенными сообщениями для приложения ruby ​​on rails. Это кажется очень сложным, так как я не нашел никаких реализаций, которые бывают кроссбраузерными или 1-1.

Посмотрел в:

  • клиенты xmpp (есть Candy на github, поддерживает только групповой чат)
  • Серверы xmpp и Rails (много хлопот, нет хорошей интеграции)
  • Джаггернаут (нет 1-1, не поддерживается Internet Explorer, причина использования веб-сокетов)
  • Частный паб Райана Бейтса (кажется, в состоянии сделать трюк, но как рубиновый новичок с небольшим количеством документации по этому не может понять это)

Может кто-нибудь предложить мне мессенджер для рельсов:

  • это кросс-браузер
  • имеет хорошую документацию, пример реализации
  • Instant Messenger, где пользователь A общается с пользователем B, а пользователь B общается с пользователем A

Я действительно понятия не имею, как бы я это реализовал, кто-нибудь может дать мне совет, как можно решить эту проблему? Спасибо

2 ответа

Решение

Как сказал Эрик, его нет. Обмен сообщениями - очень сложная вещь.

Прямо сейчас я использую Pubnub, который является внешним сервисом. Не очень хорошая документация по интеграции с Rails, поэтому вам просто нужно попытаться сделать это самостоятельно.

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

С точки зрения документации Faye, ознакомьтесь с этим Railscast, а для конфиденциальности ознакомьтесь с Private Pub.

редактировать: если вы думаете, что частный паб трудно интегрировать... ну, это не значит, но, возможно, вы должны попытаться узнать больше о Rails и Javascript, прежде чем углубляться в этот вопрос, поскольку это не так просто сделать (хотя вроде бы так и должно быть)

редактировать 2: Кроме того, для Фэй, этот учебник может помочь вам.

Возможно, вам лучше использовать Node.js для этого типа вещей.

Работа в процессе: полный клон Facebook

https://github.com/rubytastic/im

Пожалуйста, внесите код, который будет исправлен и все еще дурацкий!

Другие вопросы по тегам