Выбор подхода для клиент-серверного приложения IM - PullRequest
2 голосов
/ 27 мая 2010

Обновление : полностью переписано, чтобы быть более лаконичным.

Я смотрю на новое приложение, одна часть которого будет очень похожа на стандартные IM-клиенты, т. Е. Текстовый чат, возможность отправлять вложения, может быть, какое-то взаимодействие в реальном времени, например, многопользовательская доска.

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

Ожидается, что клиенты будут включать приложения для настольных компьютеров, но, вероятно, также на основе браузера либо через Flex / Silverlight, либо через HTML / AJAX.

Я вижу 3 варианта для моего собственного уровня связи клиент-сервер:

  1. XMPP . Преимущества в том, что клиенты уже существуют, как и серверы с открытым исходным кодом. Тем не менее, это требует самых предварительных исследований / обучения, а также может привести к юридическим проблемам из-за GPL.

  2. Пользовательские розетки . Серверное приложение устанавливает связи с клиентами, что позволяет очень быстро отправлять любые текстовые / двоичные данные. Однако такой подход требует создания указанного сервера с нуля, а также усложняет работу JS-клиента

  3. Сервлеты (или аналогичный веб-сервер) . Используя проверенный и проверенный веб-стек Java, клиенты отправляют HTTP-запросы, аналогичные веб-сайтам на основе AJAX. Преимущество заключается в том, что сервер легко писать с использованием устоявшихся технологий и с ним легко общаться. Но какие ограничения это принесет? Это подходящая технология для связи в реальном времени?

Приветствуются советы и предложения, , особенно , какие плюсы и минусы окружают использование подхода веб-сервера по сравнению с подходом на основе сокетов.

1 Ответ

0 голосов
/ 27 мая 2010

Я думаю, вы заново изобретаете колесо. Подумайте об использовании OpenFire или Tigase, которые основаны на Java и хорошо зарекомендовали себя в этом пространстве IM-сервера. Все котлы могут быть использованы. Ваши задачи заключаются в том, чтобы добавить пользовательское поведение, написав плагины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...