Реализация мессенджера для рельсов?
Некоторое время я искал несколько технологий для создания простой системы обмена мгновенными сообщениями для приложения 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
Пожалуйста, внесите код, который будет исправлен и все еще дурацкий!