XMPP proxy beállítások a Smack 4.4-ben ProxyInfo használatával
Csatolja a ProxyInfo-t az XMPP kapcsolatépítőhöz, külön proxy-, szolgáltatástartomány- és kiszolgálógép-beállításokkal.
Á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.netaz a közvetítő, amely a kezdeti kapcsolatot fogadja.xmpp-node.example.netaz a kiszolgálóvégpont, amelyet a proxynak el kell érnie.chat.example.netaz 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.