Difference between revisions of "Component"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(Разработка внешних компонентов: todo done)
m (Разработка внешних компонентов)
Line 14: Line 14:
 
После того, как компонент подсоединился и авторизовался, сервер начинает пробрасывать все [[Stanza|станцы]], пришедшие на [[JID]] компонента из сети, в соединение с компонентом и наоборот, т.е. работает как обычный шлюз. Кроме этого сервер обычно добавляет [[JID]] компонента в список сервисов, который можно получить через [[Service_Discovery|дискавери]]. Больше никакой работы сервер не делает, т.е. рассылать [[Presence|презенсы]], следить за [[Roster|ростерами]] своих "пользователей", если есть, и т.п. компонент должен сам.
 
После того, как компонент подсоединился и авторизовался, сервер начинает пробрасывать все [[Stanza|станцы]], пришедшие на [[JID]] компонента из сети, в соединение с компонентом и наоборот, т.е. работает как обычный шлюз. Кроме этого сервер обычно добавляет [[JID]] компонента в список сервисов, который можно получить через [[Service_Discovery|дискавери]]. Больше никакой работы сервер не делает, т.е. рассылать [[Presence|презенсы]], следить за [[Roster|ростерами]] своих "пользователей", если есть, и т.п. компонент должен сам.
  
В DNS для компонента нужно прописать, что он (его JID) имеет IP-адрес сервера, даже если он фактически находится на другом IP.
+
В DNS для компонента нужно прописать, что он (его JID) имеет IP-адрес сервера, даже если сама программа, реализующая внешний компонент, запущена на компьютере с другим IP.

Revision as of 16:50, 10 June 2007


Компонент — общее название для сервисов и транспортов и обозначает программу или модуль, расширяющий список предоставляемых сервером услуг. Примеры: rss.jabber.ru (сервис), icq.jabber.ru (транспорт), translate.jrudevels.org (сервис). Делится на внутренние и внешние.

Внутренний компонент — неотделимый от конкретной реализации XMPPP-сервера модуль, плагин или кусок, который нельзя использовать с другой реализацией.

Внешний компонент — отдельная программа, которая подключается к серверу динамически и расширяет предоставляемые им услуги. Она может быть запущена как на том же компьютере так и на отдельном.

Этот термин применяется в основном в техническом общении для определения способа реализации сервисов и транспортов. Фраза "Сервис XXX сделан в виде внешнего компонента" означает, что это отдельная программа, а не встроенный в сервер модуль или еще что-то, и его можно использовать с любым сервером, поддерживающим XEP-0114. Часто слово "внешний" опускается, а для определения внутренних компонентов используют слова модуль, плагин и т.д.

Разработка внешних компонентов

У каждого компонента должен быть свой JID (обычно это поддомен домена сервера) и пароль (secret), с которыми он авторизуется на сервере. На сервере же этот JID и пароль должен быть прописан в файле конфигурации. Процесс авторизации описан в XEP-0114. Соединение с сервером обычно осуществляется через TCP/IP.

После того, как компонент подсоединился и авторизовался, сервер начинает пробрасывать все станцы, пришедшие на JID компонента из сети, в соединение с компонентом и наоборот, т.е. работает как обычный шлюз. Кроме этого сервер обычно добавляет JID компонента в список сервисов, который можно получить через дискавери. Больше никакой работы сервер не делает, т.е. рассылать презенсы, следить за ростерами своих "пользователей", если есть, и т.п. компонент должен сам.

В DNS для компонента нужно прописать, что он (его JID) имеет IP-адрес сервера, даже если сама программа, реализующая внешний компонент, запущена на компьютере с другим IP.