Существует множество серверов 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, он включен по умолчанию, но его можно отключить, чтобы не раскрывать эту информацию.