Állítsa be azt a kapcsolatot, amely valóban az XMPP adatfolyamot szállítja. Ha egy nem kapcsolódó URLConnection-re állít proxyt, az nem irányítja át a Smack TCP-kapcsolatát az üzenetküldő szolgáltatáshoz.

A Smack 4.4 ProxyInfo gyárakat biztosít a HTTP, a SOCKS4 és a SOCKS5 számára. Csatolja a kapott objektumot az XMPP kapcsolatépítőhöz:

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

Ez egy konfigurációs töredék egy meglévő Smack 4.4 beállításhoz. A környező alkalmazás kezeli az építő ellenőrzött kivételeit, és biztosítja a proxy hitelesítő adatait. A megadott hoszt és port az XMPP szolgáltatás tényleges TCP végpontját jelöli.

Három névnek különböző a szerepe:

  • proxy.example.net az a közvetítő, amely a kezdeti kapcsolatot fogadja.
  • xmpp-node.example.net az a kiszolgálóvégpont, amelyet a proxynak el kell érnie.
  • chat.example.net az XMPP szolgáltatástartomány, például a fiók JID-jében a @ utáni tartomány.

Egy szolgáltatás használhatja ugyanazt a nevet az utóbbi kettőre, de a proxy hosztneve egyiket sem helyettesíti. Őrizze meg a szándékolt XMPP szolgáltatásazonosságot a kapcsolatban és annak TLS-ellenőrzésében.

HTTP proxy esetén a megfelelő proxyporttal és hitelesítő adatokkal használja a ProxyInfo.forHttpProxy-ot. Ehhez olyan proxy szükséges, amely alagutazni tudja az XMPP kapcsolatot, és engedélyezi annak célportját. Az HTTPS-webes böngészést kiszolgáló proxy nem engedélyezi automatikusan a TCP-kapcsolatokat egy 5222-es XMPP szolgáltatáshoz.

A töredékben előírt biztonsági mód a TLS-t az XMPP kapcsolat feltételévé teszi. Nem végez proxyhitelesítést, és a proxy hitelesítő adatai nem jelentenek be XMPP-fiókot. A proxy és a biztonságos munkamenet létrehozása után a Smack szokásos hitelesítési folyamatán keresztül állítsa be az XMPP-fiókot.

Tartsa a példákat a saját API-generációjukon belül. A régebbi, konstruktor-alapú ConnectionConfiguration példák ugyanazt az útválasztási fogalmat fejezik ki, de itt a Smack 4.4 építője a használt felület. Nem kell egy elavult üzenetküldő szolgáltató hosztneveit újra létrehozni ahhoz, hogy ezt a fogalmat egy jelenlegi XMPP szolgáltatásra alkalmazza.

Kapcsolódó cikkek