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.

Artikuj të ngjashëm