Cilësimet e proxy-t XMPP në Smack 4.4 me ProxyInfo
Lidhni ProxyInfo me ndërtuesin e lidhjes XMPP, me cilësime të veçanta për proxy, domenin e shërbimit dhe hostin e serverit.
Konfiguroni lidhjen që vërtet mbart rrjedhën XMPP. Vendosja e një proxy në një URLConnection të palidhur nuk e ridrejton lidhjen TCP të Smack-ut drejt shërbimit të mesazheve.
Smack 4.4 ofron fabrika ProxyInfo për HTTP, SOCKS4 dhe SOCKS5. Lidhni objektin që rezulton me ndërtuesin e lidhjes 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();Ky është një fragment konfigurimi për një konfigurim ekzistues të Smack 4.4. Aplikacioni rrethues trajton përjashtimet e kontrolluara të ndërtuesit dhe siguron kredencialet e proxy-t. Host-i dhe porta e shprehur përfaqësojnë pikën e vërtetë fundore TCP të shërbimit XMPP.
Ka tre emra me role të ndryshme:
proxy.example.netështë ndërmjetësi që pranon lidhjen fillestare.xmpp-node.example.netështë pika fundore e serverit që proxy-t i kërkohet të arrijë.chat.example.netështë domeni i shërbimit XMPP, si domeni pas@në JID-në e një llogarie.
Një shërbim mund të përdorë të njëjtin emër për dy të fundit, por një emër hosti proxy nuk zëvendëson asnjërin prej tyre. Ruani identitetin e synuar të shërbimit XMPP në lidhje dhe në vërtetimin e saj TLS.
Për një proxy HTTP, përdorni ProxyInfo.forHttpProxy me portën e proxy-t dhe kredencialet e duhura. Kjo rrugë kërkon një proxy të aftë të tunelizojë lidhjen XMPP dhe të lejojë portën e destinacionit të saj. Një proxy që trajton shfletimin e uebit HTTPS nuk lejon automatikisht lidhje TCP drejt një shërbimi XMPP në 5222.
Mënyra e detyrueshme e sigurisë në fragment e bën TLS një kusht të lidhjes XMPP. Ajo nuk kryen vërtetim proxy, dhe kredencialet e proxy-t nuk identifikohen në një llogari XMPP. Konfiguroni llogarinë XMPP përmes rrjedhës normale të vërtetimit të Smack-ut pasi të keni vendosur rrugën dhe sesionin e sigurt.
Mbani shembujt brenda gjeneratës së tyre API. Shembujt më të vjetër ConnectionConfiguration të bazuar në ndërtues shprehin të njëjtin koncept rrugëtimi, por ndërtuesi i Smack 4.4 është ndërfaqja e përdorur këtu. Nuk është e nevojshme të riprodhoni emrat e hosteve të një ofruesi të vjetëruar mesazhesh për ta zbatuar atë koncept në një shërbim XMPP aktual.