i запустит новый проект. В этом проекте у меня есть сервер и множество клиентов (более 100000). Клиенты и сервер постоянно будут общаться друг с другом. Они используют только текстовые сообщения. Я думаю, слишком сложно управлять с помощью tcp-сокета, поэтому я должен выбрать XMPP или SIP. Я буду использовать Java в этом проекте. Кого вы мне предлагаете? и каковы их плюсы и минусы? или вы знаете более эффективное решение?
Сравнение XMPP и SIP
Ответ 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.
-
Посмотрите сервлеты Mobicent Sip на основе Jain-SIP. https://code.google.com/p/sipservlets/. Вы можете использовать Tomcat/JBoss для развертывания вашего сервера.
Вы можете добавить сервер Lightweight Presence поверх SIP-сервера с открытым исходным кодом для поддержки присутствия между клиентами SIP.
В стеке клиентской стороны вы можете использовать базовый стек Opensource.
Подробнее @ Поиск стека SIP для Android