как сделать запрос к xmpp-серверу извне, чтобы узнать, какую версию он использует

как сделать запрос к xmpp-серверу извне, чтобы узнать, какую версию он использует

Существует множество серверов xmpps (ejabberd, prosody и т. д.). Есть ли вызов API, который сообщает, какая марка и какая версия запущена на этом сервере?

решение1

API? Вероятно, большинство серверов предоставляют API для получения своего имени и номера версии. Например, ejabberd предоставляетстатус вызова API:

$ ejabberdctl status
The node ejabberd@localhost is started with status: started
ejabberd 23.01.58 is running in that node

Но совершенно очевидно, что это не то, что вам нужно. Каждый сервер предоставляет свой собственный API и разные способы их использования.

Вполне вероятно, что вы хотите использоватьXEP-0092: Версия программного обеспечения, который реализован большинством, если не всеми, серверами, клиентами и компонентами XMPP. Используя этот XEP, ваш клиент может спросить любой сервер, каково его имя и версия программного обеспечения.

Конечно, сервер может ответить или не ответить, или может предоставить ложную информацию. Например, ejabberd реализует этот XEP вmod_version, он включен по умолчанию, но его можно отключить, чтобы не раскрывать эту информацию.

Связанный контент