Архитектура чат-сервера для программного обеспечения обслуживания клиентов

Мне нужно предоставить чат-контакт на сайте, где посетители могут общаться с операторами. Чаты направляются в различные бизнес-организованные очереди: продажи, поддержка, информация о продукте и т. д. Можете ли вы предложить мне архитектуру, которая будет охватывать:

  • Чат-сервер на стороне сервера с маршрутизацией очереди, БД, онлайн-статусом операторов и т. д.
  • Веб-приложение оператора
  • Посетители Операторы
  • Веб-сайт мониторинга в реальном времени

Я смотрю на:

  • node.js + Socket.io + Redis pub/sub: мне нужно реализовать всю систему обмена сообщениями
  • XMPP-сервер, такой как Openfire
  • RabbitMQ

Что вы предлагаете? любая другая идея?

Спасибо


person Monardo Barella    schedule 15.04.2012    source источник
comment
Вы правы, но добавили бы MongoDB для хранения истории чатов контактов с клиентами, так как это настоящая боль, чтобы повторить ваш последний чат другому представителю.   -  person King Friday    schedule 01.01.2013


Ответы (1)


Вы можете взглянуть на службу Fastpath и веб-чат для Openfire. Он обеспечивает по крайней мере некоторые из этих функций.

person Robin    schedule 16.04.2012
comment
Я сделал, и похоже, что он покрывает некоторые требования. Продукт кажется надежным, но я не совсем уверен в гибкости и масштабируемости разработки, учитывая, что это java и множество проприетарных фреймворков. Спасибо за помощь - person Monardo Barella; 17.04.2012
comment
@Monardo - ваш комментарий о java и не масштабируемости не имеет никакого смысла. Архитектура, а не язык обычно определяет масштабируемость. Что касается собственнического характера, вы просили идеи и предложения. Я не думаю, что есть какие-либо открытые стандарты по этой теме, почти любое решение будет проприетарным. - person Robin; 25.04.2012
comment
Привет, Робин, я не знаю, что случилось с отрицательным голосом. Я не мог этого сделать, потому что мне нужно как минимум «15 репутации». - person Monardo Barella; 14.05.2012
comment
Привет, Робин, я не знаю, что случилось с отрицательным голосом. Я не мог этого сделать, потому что мне нужно как минимум «15 репутации». Что касается масштабируемости, я хотел иметь в виду архитектуру. Веб-приложение Java, работающее под Jetty с использованием продолжений, работает намного лучше, чем другие контейнеры сервлетов без них. Известно, что NOde.js действительно хорошо справляется с параллелизмом. Так или иначе, я сделал первый шаг к Openfire. Это было в течение долгого времени на рынке, и уже сделано МНОГО функций. Я пытаюсь собрать продукт, а не просто пример чата, а затем создать все остальное. Спасибо, Робин. - person Monardo Barella; 14.05.2012