Создайте чат-клиент на сайте. Должен ли я использовать XMPP? - PullRequest
0 голосов
/ 11 января 2012

Я собираюсь разработать сайт, используя ruby ​​on rails. И одна из функций, которые я хочу реализовать, - это функциональность чата. Где пользователи могут общаться с другими пользователями / участниками сайта. Что я должен использовать или, другими словами, начать учиться, чтобы спроектировать что-то подобное?

Является ли XMPP ответом? если это так, я был бы рад, если бы кто-то мог немного описать, куда идти и / или предложить несколько книг. спасибо!

Я сказал XMPP, потому что я знаю, что Facebook использует это, и я планирую создать нечто подобное

Ответы [ 2 ]

3 голосов
/ 11 января 2012

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

XMPP - это протокол, который уже хорошо зарекомендовал себя, не работает и уже имеет много стабильных реализаций. Поэтому при его использовании вам больше не нужно беспокоиться о разработке или реализации протокола. По этой причине я очень рекомендую это. Это также довольно простой для понимания протокол, даже если вам придется потратить некоторое время на изучение основ в начале. Смотрите ржание дальше, чем http://xmpp.org для документации.

Настройка сервера XMPP может быть выполнена за несколько минут, в зависимости от вашей ОС и выбранного вами сервера. Предостережение заключается в том, что если вы хотите настроить сервер вообще, вам придется узнать о его внутренностях также в некоторой степени, что может или не может занять некоторое время.

Суть заключается в следующем: выбирая XMPP и существующие библиотеки и серверы XMPP, вы получаете 90% функциональности бесплатно и можете сосредоточиться на реализации вашего клиента. Вопрос в том, сколько вам придется копаться в деталях XMPP и сервера, это займет больше времени, чем развертывание вашего собственного протокола, и будет ли ваш собственный протокол соответствовать вашим потребностям в долгосрочной перспективе, а XMPP -?

1 голос
/ 11 января 2012

Вы всегда должны думать о том, сколько вы хотите потратить на реализацию этого. Если вы используете XMPP, вы сможете запустить стандартный чат-сервер XMPP (за пределами Rails) и сможете использовать клиент JavaScript с мостом XMPP в HTTP.

Проект быстрого поиска Google, созданный с этим Strophe .

Но я бы сказал, что вам следует задуматься над тем, действительно ли XMPP действительно соответствует вашим потребностям и действительно ли вы хотите пройти через все эти неприятности в чате.

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

Ведение чата самостоятельно в Rails, однако, потребует от вас использования альтернативной базы данных, так как Rails не может хранить данные в памяти между запросами, а постоянные данные чата в ActiveRecord кажутся не очень масштабируемой и хорошей идеей.

Использование XMPP, очевидно, выгодно тем, что ваши пользователи могут подключаться к вашей службе чата с помощью iChat, Jabber или любого другого клиента XMPP.

...