Ustawienia proxy XMPP w Smack 4.4 z ProxyInfo
Dołącz ProxyInfo do buildera połączenia XMPP, z osobnymi ustawieniami proxy, domeny usługi i hosta serwera.
Skonfiguruj połączenie, które rzeczywiście przenosi strumień XMPP. Ustawienie proxy na niepowiązanym URLConnection nie przekierowuje połączenia TCP Smack do usługi przesyłania wiadomości.
Smack 4.4 udostępnia fabryki ProxyInfo dla HTTP, SOCKS4 i SOCKS5. Dołącz wynikowy obiekt do buildera połączenia 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();To fragment konfiguracji dla istniejącej instalacji Smack 4.4. Otaczająca aplikacja obsługuje sprawdzane wyjątki buildera i dostarcza dane uwierzytelniające proxy. Jawny host i port oznaczają rzeczywisty punkt końcowy TCP usługi XMPP.
Istnieją trzy nazwy o różnych rolach:
proxy.example.netto pośrednik, który odbiera początkowe połączenie.xmpp-node.example.netto punkt końcowy serwera, do którego proxy ma dotrzeć.chat.example.netto domena usługi XMPP, na przykład domena po@w JID konta.
Usługa może używać tej samej nazwy dla dwóch ostatnich, ale nazwa hosta proxy nie zastępuje żadnej z nich. Zachowaj zamierzoną tożsamość usługi XMPP w połączeniu i jego walidacji TLS.
Dla proxy HTTP użyj ProxyInfo.forHttpProxy z odpowiednim portem proxy i danymi uwierzytelniającymi. Ta ścieżka wymaga proxy zdolnego do tunelowania połączenia XMPP i zezwalającego na jego port docelowy. Proxy obsługujące przeglądanie stron HTTPS nie zezwala automatycznie na połączenia TCP do usługi XMPP na porcie 5222.
Wymagany tryb zabezpieczeń we fragmencie czyni TLS warunkiem połączenia XMPP. Nie wykonuje uwierzytelniania proxy, a dane uwierzytelniające proxy nie logują się do konta XMPP. Skonfiguruj konto XMPP przez zwykły przepływ uwierzytelniania Smack po ustanowieniu trasy i bezpiecznej sesji.
Trzymaj przykłady w ich generacji API. Starsze przykłady ConnectionConfiguration oparte na konstruktorze wyrażają tę samą koncepcję routingu, ale builder Smack 4.4 jest interfejsem używanym tutaj. Nie trzeba odtwarzać nazw hostów przestarzałego dostawcy wiadomości, aby zastosować tę koncepcję do bieżącej usługi XMPP.