Я ищу платформу обмена сообщениями (например, XMPP), которая обеспечивает тесную интеграцию с веб-приложением.

В компании, в которой я работаю, мы создаем кластер веб-приложений для совместной работы. Такие вещи, как бухгалтерский учет, биллинг, CRM и т. Д.

Мы используем технику RESTfull:

  1. Для базы данных мы используем CouchDB
  2. Различные приложения взаимодействуют друг с другом и с базой данных через http.
  3. Кроме того, у нас есть решение для единого входа, так что, когда вы входите в одно приложение, вы автоматически входите в другое.
  4. Для всех приложений мы используем Python (Pylons).

Теперь нам нужно добавить в стек обмен мгновенными сообщениями. Нам необходимо поддерживать как веб-клиенты, так и клиенты для настольных ПК. Но просто общаться в чате недостаточно. Нам необходимо достичь всего следующего (и более похожих вещей).

  1. Когда кому-то назначается задача, он должен получить сообщение. Я думаю, это возможно с каким-то системным демоном.
  2. Должна быть возможность автоматически группировать людей в группы по множеству различных свойств. Например, должны быть группы, разделенные как по географическому положению, так и по подразделению компании, по типу работы (все программисты из разных городов и разных подразделений компании должны сформировать группу), чтобы можно было отправлять массовые сообщения выбранной группе.
  3. Комнаты должны создаваться и уничтожаться автоматически. Например, когда несколько человек посещают один и тот же счет-фактуру, для них должна быть автоматически создана комната (и они должны автоматически присоединяться). А когда все оставят накладную, комнату надо уничтожить.
  4. Аутентификация и авторизация из наших приложений.

Я могу реализовать это с помощью специальных решений, таких как Hackbox http://hookbox.org/docs/intro.html но тогда у меня будет много проблем с поддержкой настольных клиентов.

У меня нет опыта работы с мгновенными сообщениями. Я читал об этом в последнее время. Я смотрел в основном на такие вещи, как ejabberd. Но это были тяжелые времена, и я не могу понять, возможно ли вообще то, что я хочу.

Поэтому я был бы счастлив, если бы люди с опытом в этой области могли помочь мне советами, статьями, рассказами о том, что возможно, и т. Д.


person loxs    schedule 14.05.2010    source источник


Ответы (2)


Как и предложенный выше frx, у StropheJS есть отличная книга о кодировании web + xmpp, но, поскольку вы упомянули, что у вас нет опыта в этом типе кодирования, я бы посоветовал поговорить с некоторыми людьми, у которых есть :) Это сэкономит ваше время в долгосрочной перспективе - не то, чтобы я говорю, не пытайтесь реализовать то, что контуры frx, это может быть забавный проект :)

Я знаю одну группу, которая реализовала нечто подобное, и общение с ними помогло бы укрепить ваши мысли: http://andyet.net/ (я не связан с ними вообще, за исключением того факта, что сообщество разработчиков XMPP невелико, и мы, как правило, знаем друг друга :)

person bear    schedule 19.05.2010

Все цели могут быть достигнуты с помощью ejabberd, strophe и небольших скриптов на стороне сервера.

  1. Когда кому-то назначается задача, сценарий на стороне сервера может легко пройти аутентификацию на сервере xmpp и отправить раздел сообщения назначенному JID. Это его тривиальная задача.
  2. Чтобы сгруппировать разных людей в группы, это легко сделать из приложения веб-чата, если эти пользовательские свойства где-то хранятся. Просто присоединитесь к ним в особом многопользовательском чате после аутентификации.
  3. У Эджабберда есть возможность автоматически создавать и разрушать комнаты.
  4. Ejabberd имеет различные методы авторизации, включая аутентификацию по базе данных и скрипту.

Вы можете взглянуть на библиотеку StropheJS, у них есть отличная книга (в мягкой обложке). Очень рекомендую прочитать эту книгу http://professionalxmpp.com/

person frx    schedule 18.05.2010