XMPP starpniekservera iestatījumi Smack 4.4 ar ProxyInfo
Pievienojiet ProxyInfo XMPP savienojuma veidotājam, ar atsevišķiem starpniekservera, pakalpojuma domēna un servera resursdatora iestatījumiem.
Konfigurējiet savienojumu, kas patiešām pārnēsā XMPP straumi. Starpniekservera iestatīšana nesaistītā URLConnection nepārvirza Smack TCP savienojumu uz ziņojumapmaiņas pakalpojumu.
Smack 4.4 nodrošina ProxyInfo rūpnīcas HTTP, SOCKS4 un SOCKS5. Pievienojiet iegūto objektu XMPP savienojuma veidotājam:
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();Šis ir konfigurācijas fragments esošam Smack 4.4 iestatījumam. Apkārtējā lietojumprogramma apstrādā veidotāja pārbaudītos izņēmumus un nodrošina starpniekservera akreditācijas datus. Norādītais resursdators un ports apzīmē faktisko XMPP pakalpojuma TCP galapunktu.
Ir trīs nosaukumi ar atšķirīgām lomām:
proxy.example.netir starpnieks, kas saņem sākotnējo savienojumu.xmpp-node.example.netir servera galapunkts, kuru starpniekserverim jāsasniedz.chat.example.netir XMPP pakalpojuma domēns, piemēram, domēns pēc@konta JID.
Pakalpojums var izmantot to pašu nosaukumu pēdējiem diviem, bet starpniekservera resursdatora nosaukums neaizstāj nevienu no tiem. Saglabājiet paredzēto XMPP pakalpojuma identitāti savienojumā un tā TLS validācijā.
HTTP starpniekserveram izmantojiet ProxyInfo.forHttpProxy ar atbilstošu starpniekservera portu un akreditācijas datiem. Šim ceļam nepieciešams starpniekservers, kas spēj tunelēt XMPP savienojumu un atļaut tā galamērķa portu. Starpniekservers, kas apkalpo HTTPS tīmekļa pārlūkošanu, automātiski neatļauj TCP savienojumus uz XMPP pakalpojumu portā 5222.
Fragmentā noteiktais obligātais drošības režīms padara TLS par XMPP savienojuma nosacījumu. Tas neveic starpniekservera autentifikāciju, un starpniekservera akreditācijas dati nepiesakās XMPP kontā. Konfigurējiet XMPP kontu ar parasto Smack autentifikācijas plūsmu pēc maršruta un drošās sesijas izveides.
Turiet piemērus savā API paaudzē. Vecākie uz konstruktoru balstītie ConnectionConfiguration piemēri izsaka to pašu maršrutēšanas koncepciju, bet šeit izmantotā saskarne ir Smack 4.4 veidotājs. Nav jāatkārto novecojuša ziņojumapmaiņas pakalpojumu sniedzēja resursdatoru nosaukumi, lai šo koncepciju piemērotu pašreizējam XMPP pakalpojumam.