Мне было интересно, нужно ли мне реализовывать клиент XMPP, какое соединение лучше всего использовать, используя сокет или BOSH? Каковы плюсы и минусы? Я предполагаю, что оба могут поддерживать клиентов в другой сети, чем сервер?
XMPP через HTTP или через сокет
Ответы (2)
Я думаю, что самая большая разница между socket и bosh заключается в том, что bosh использует HTTP, который без сохранения состояния (соединение закрыто) против сокета. Это означает, что вы можете подключиться к XMPP из браузера при использовании BOSH. Я не понимаю, почему вы хотите создать клиент BOSH, потому что strophe.js — это очень хорошая чушь. клиент. Также уже есть реализация сокета практически на любом доступном языке. Это хорошая мысль о XMPP, если вы спросите меня.
Это, конечно, не окончательный список всех плюсов и минусов, а скорее те, с которыми я столкнулся, пытаясь реализовать кросс-сетевое зашифрованное соединение Openfire.
Socket One Pro of Socket Connection: поддерживает автоматическое шифрование TLS.
Один возможный недостаток подключения к сокету: недавно я узнал, что использование сокетных подключений может быть проблемой, если сервер Openfire находится в другой сети, чем клиент, подключающийся к этому серверу, и в этом случае возможность подключения к серверу может быть на благодаря брандмауэру подключающихся сетей и возможности подключения через стандартный порт 5222 Socket.
Привязка HTTP
Pro of Http-Bind: может облегчить вышеупомянутую проблему межсетевых подключений с помощью стандартного порта Http.
Один недостаток Http-Bind: не поддерживает автоматическое шифрование TLS и вместо этого полагается на стандарт «Старый SSL» для зашифрованной связи, который, по-видимому, не поддерживают многие библиотеки XMPP.