Обновление : полностью переписано, чтобы быть более лаконичным.
Я смотрю на новое приложение, одна часть которого будет очень похожа на стандартные IM-клиенты, т. Е. Текстовый чат, возможность отправлять вложения, может быть, какое-то взаимодействие в реальном времени, например, многопользовательская доска.
Это будет клиент-сервер, т.е. весь трафик проходит через мой центральный сервер. Это означает, что если я хочу поддерживать перекрестную связь с другими системами обмена мгновенными сообщениями, я все еще могу выбрать любой протокол для связи с моим собственным клиентом <-> - мой сервер может использовать XMPP или что-либо еще для общения другие системы.
Ожидается, что клиенты будут включать приложения для настольных компьютеров, но, вероятно, также на основе браузера либо через Flex / Silverlight, либо через HTML / AJAX.
Я вижу 3 варианта для моего собственного уровня связи клиент-сервер:
XMPP . Преимущества в том, что клиенты уже существуют, как и серверы с открытым исходным кодом. Тем не менее, это требует самых предварительных исследований / обучения, а также может привести к юридическим проблемам из-за GPL.
Пользовательские розетки . Серверное приложение устанавливает связи с клиентами, что позволяет очень быстро отправлять любые текстовые / двоичные данные. Однако такой подход требует создания указанного сервера с нуля, а также усложняет работу JS-клиента
Сервлеты (или аналогичный веб-сервер) . Используя проверенный и проверенный веб-стек Java, клиенты отправляют HTTP-запросы, аналогичные веб-сайтам на основе AJAX. Преимущество заключается в том, что сервер легко писать с использованием устоявшихся технологий и с ним легко общаться. Но какие ограничения это принесет? Это подходящая технология для связи в реальном времени?
Приветствуются советы и предложения, , особенно , какие плюсы и минусы окружают использование подхода веб-сервера по сравнению с подходом на основе сокетов.