Сравнение XMPP и SIP

i запустит новый проект. В этом проекте у меня есть сервер и множество клиентов (более 100000). Клиенты и сервер постоянно будут общаться друг с другом. Они используют только текстовые сообщения. Я думаю, слишком сложно управлять с помощью tcp-сокета, поэтому я должен выбрать XMPP или SIP. Я буду использовать Java в этом проекте. Кого вы мне предлагаете? и каковы их плюсы и минусы? или вы знаете более эффективное решение?

Ответ 1

Это похоже на сравнение яблок с апельсинами, поскольку SIP был первоначально разработан для VoIP и XMPP для обмена мгновенными сообщениями.

По-моему, для текстовых сообщений XMPP более уместен.

XMPP намного проще с точки зрения брандмауэра - ему нужен только один TCP-порт 5222 (и порт 5269 для связи между сервером и сервером). Поскольку 5222 - это тот же порт, что и Google Talk, он редко фильтруется корпоративными брандмауэрами. XMPP также поддерживает STARTTLS через один и тот же порт 5222, поэтому трафик можно легко защитить.

SIP, с другой стороны, обычно работает над UDP, ему требуется больше одного порта и обычно фильтруется корпоративными брандмауэрами.

Ответ 2

Я думаю, вы должны использовать SIP, потому что он поддерживает одноранговый протокол и находится поверх UDP/TCP. Он поддерживает SIP SIMPLE и CPM. Подробнее см. http://www.linkedin.com/groups/Differences-betwen-SIP-SIMPLE-CPM-1890406.S.150607448.

Вы будете писать меньше кода, если используете SIP-стек с открытым исходным кодом в комплекте с функциями SIP SIMPLE и CPM.

Вы можете добавить сервер Lightweight Presence поверх SIP-сервера с открытым исходным кодом для поддержки присутствия между клиентами SIP.

В стеке клиентской стороны вы можете использовать базовый стек Opensource.

Подробнее @ Поиск стека SIP для Android

https://code.google.com/p/android-rcs-ims-stack/