Konfigurearje de ferbining dy't echt de XMPP-stream draacht. It ynstellen fan in proxy op in net-relatearre URLConnection ferwiist de TCP-ferbining fan Smack net nei de berjochttsjinst.

Smack 4.4 biedt ProxyInfo-fabriken foar HTTP, SOCKS4 en SOCKS5. Heakje it resultearjende objekt oan 'e XMPP-ferbiningbouwer:

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();

Dit is in konfiguraasjefragmint foar in besteande Smack 4.4-opsetsetting. De omjouwende applikaasje behannelt de kontrolearre útsûnderings fan 'e bouwer en leveret de proxy-ynloggegevens. De eksplisite host en poarte steane foar it werklike TCP-einpunt fan 'e XMPP-tsjinst.

Der binne trije nammen mei ferskillende rollen:

  • proxy.example.net is de tuskenpersoan dy't de earste ferbining ûntfangt.
  • xmpp-node.example.net is it servereinpunt dêr't de proxy berikke moat.
  • chat.example.net is it tsjinstdomein fan XMPP, lykas it domein nei @ yn 'e JID fan in akkount.

In tsjinst kin deselde namme foar de lêste twa brûke, mar in proxy-hostnamme ferfangt gjin fan beide. Behâld de bedoelde identiteit fan 'e XMPP-tsjinst yn 'e ferbining en har TLS-falidaasje.

Brûk foar in HTTP-proxy ProxyInfo.forHttpProxy mei de passende proxy-poarte en ynloggegevens. Dat paad freget in proxy dy't de XMPP-ferbining tunnelje kin en har bestimmingspoarte tastean. In proxy dy't HTTPS-webbroegjen behannelt, lit net automatysk TCP-ferbiningen ta nei in XMPP-tsjinst op 5222.

De fereaske befeiligingsmodus yn it fragmint makket TLS in betingst fan 'e XMPP-ferbining. Hy docht gjin proxy-autentikaasje, en de proxy-ynloggegevens logge net yn op in XMPP-akkount. Konfigurearje it XMPP-akkount fia de normale autentikaasjestream fan Smack nei't de rûte en de feilige sesje fêststeld binne.

Hâld foarbylden binnen har API-generaasje. De âldere konstruktorbasearre ConnectionConfiguration-foarbylden uterje itselde routingkonsept, mar de bouwer fan Smack 4.4 is de hjir brûkte ynterface. It is net nedich om hostnammen fan in ferâldere berjochtaanbieder te reprodusearjen om dat konsept op in aktuele XMPP-tsjinst ta te passen.

Relatearre artikelen