XMPP-Proxy-Astellungen a Smack 4.4 mat ProxyInfo
ProxyInfo un den XMPP-Verbindungs-Builder unhänken, mat getrennten Astellunge fir Proxy, Service-Domän an Server-Host.
Konfiguréiert d'Verbindung, déi tatsächlech den XMPP-Strom dréit. E Proxy op engem onverbonnenen URLConnection setzen leet dem Smack seng TCP-Verbindung net op de Messaging-Service ëm.
Smack 4.4 bitt ProxyInfo-Fabriken fir HTTP, SOCKS4 a SOCKS5. Hängt dat resultéierend Objet un den XMPP-Verbindungs-Builder un:
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();Dëst ass e Konfiguratiounsfragment fir eng bestoend Smack 4.4-Astellung. D'Ëmgéigend Applikatioun behandelt déi gepréift Ausnahmen vum Builder a liwwert dem Proxy seng Authentifikatiounsdonnéeën. Den expliziten Host an de Port stinn fir den tatsächlechen TCP-Endpunkt vum XMPP-Service.
Et ginn dräi Nimm mat ënnerschiddlechen Aufgaben:
proxy.example.netass de Vermëttler, deen déi éischt Verbindung entgeet.xmpp-node.example.netass den Endpunkt vum Server, deen de Proxy soll erreechen.chat.example.netass d'Service-Domän vun XMPP, zum Beispill d'Domän no@an der JID vun engem Kont.
E Service kann deeselwechten Numm fir déi lescht zwee benotzen, awer en Proxy-Hostnumm ersetzt keen vun deenen zwéin. Behale déi virgesinn Identitéit vum XMPP-Service an der Verbindung an hirer TLS-Validatioun.
Fir en HTTP-Proxy benotzt ProxyInfo.forHttpProxy mat dem passenden Proxy-Port an den Donnéeën. Dee Wee brauch e Proxy, deen d'XMPP-Verbindung tunnelen an hire Bestemmungsport erlaben kann. En Proxy, deen HTTPS-Webbrowsing verschafft, erlaabt net automatesch TCP-Verbindungen zu engem XMPP-Service op 5222.
Den erfuerderleche Sécherheetsmodus am Fragment mécht TLS zu enger Bedingung vun der XMPP-Verbindung. Hie mécht keng Proxy-Authentifikatioun, an d'Proxy-Donnéeë loggen sech net an en XMPP-Kont an. Konfiguréiert den XMPP-Kont iwwer den normale Smack-Authentifikatiounsfloss, nodeems de Wee an d'sécher Sessioun opgebaut sinn.
Halt d'Beispiller bannent hirer API-Generatioun. Déi méi al konstruktorbaséiert ConnectionConfiguration-Beispiller drécken deeselwechte Routing-Konzept aus, awer de Builder vu Smack 4.4 ass d'Interface, déi hei benotzt gëtt. Et ass net néideg, d'Hostnimm vun engem vereelten Messaging-Anbieter nobildere fir dee Konzept op en aktuelle XMPP-Service unzewennen.