Smack 4.4-те ProxyInfo арқылы XMPP прокси параметрлері
ProxyInfo-ны XMPP қосылым құрастырушысына тіркеңіз, прокси, қызмет домені және сервер хосты үшін бөлек параметрлермен.
XMPP ағынын шын мәнінде тасымалдайтын қосылымды конфигурациялаңыз. Байланыссыз URLConnection-ке прокси орнату Smack-тың TCP қосылымын хабар алмасу қызметіне бағыттамайды.
Smack 4.4 HTTP, SOCKS4 және SOCKS5 үшін ProxyInfo фабрикаларын ұсынады. Пайда болған нысанды XMPP қосылым құрастырушысына тіркеңіз:
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.proxy.ProxyInfo;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
ProxyInfo proxy = ProxyInfo.forSocks5Proxy(
"proxy.example.net", 1080, proxyUser, proxyPassword
);
XMPPTCPConnectionConfiguration config =
XMPPTCPConnectionConfiguration.builder()
.setXmppDomain("chat.example.net")
.setHost("xmpp-node.example.net")
.setPort(5222)
.setProxyInfo(proxy)
.setSecurityMode(
ConnectionConfiguration.SecurityMode.required
)
.build();Бұл бар Smack 4.4 конфигурациясына арналған конфигурация үзіндісі. Қоршаған қолданба құрастырушының тексерілетін ерекшеліктерін өңдейді және прокси тіркелгі деректерін береді. Айқын хост пен порт XMPP қызметінің нақты TCP соңғы нүктесін білдіреді.
Әртүрлі рөлдері бар үш атау бар:
proxy.example.netбастапқы қосылымды қабылдайтын делдал.xmpp-node.example.netпрокси жетуі талап етілетін сервердің соңғы нүктесі.chat.example.netXMPP қызмет домені, мысалы, тіркелгі JID-індегі@белгісінен кейінгі домен.
Қызмет соңғы екеуі үшін бірдей атауды пайдалана алады, бірақ прокси хост атауы олардың ешқайсысын алмастырмайды. XMPP қызметінің көзделген сәйкестігін қосылымда және оның TLS тексеруінде сақтаңыз.
HTTP прокси үшін тиісті прокси портымен және тіркелгі деректерімен ProxyInfo.forHttpProxy қолданыңыз. Бұл жол XMPP қосылымын туннельдеуге және оның межелі портына рұқсат беруге қабілетті проксиді қажет етеді. HTTPS веб-шолуды атқаратын прокси 5222 портындағы XMPP қызметіне TCP қосылымдарына автоматты түрде рұқсат бермейді.
Үзіндідегі міндетті қауіпсіздік режимі TLS-ті XMPP қосылымының шартына айналдырады. Ол прокси аутентификациясын орындамайды және прокси тіркелгі деректері XMPP тіркелгісіне кірмейді. Маршрут пен қауіпсіз сеанс орнатылғаннан кейін XMPP тіркелгісін Smack-тың қалыпты аутентификация ағыны арқылы конфигурациялаңыз.
Мысалдарды өздерінің API буыны шегінде ұстаңыз. Ескі конструкторға негізделген ConnectionConfiguration мысалдары сол маршруттау тұжырымдамасын білдіреді, бірақ мұнда қолданылатын интерфейс Smack 4.4 құрастырушысы. Бұл тұжырымдаманы ағымдағы XMPP қызметіне қолдану үшін ескірген хабар қызметі провайдерінің хост атауларын қайта шығарудың қажеті жоқ.