XMPP-prokseaj agordoj en Smack 4.4 kun ProxyInfo
Aldonu ProxyInfo al la konstruanto de XMPP-konekto, kun apartaj agordoj por prokseo, serva domajno kaj servila gastiganto.
Agordu la konekton, kiu efektive portas la XMPP-fluon. Agordi prokseon sur senrilata URLConnection ne alidirektas la TCP-konekton de Smack al la mesaĝa servo.
Smack 4.4 provizas fabrikojn ProxyInfo por HTTP, SOCKS4 kaj SOCKS5. Aldonu la rezultan objekton al la konstruanto de XMPP-konekto:
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();Ĉi tio estas agorda fragmento por ekzistanta Smack 4.4-agordo. La ĉirkaŭa aplikaĵo traktas la kontrolitajn esceptojn de la konstruanto kaj provizas la prokseajn akreditaĵojn. La eksplicita gastiganto kaj pordo reprezentas la realan TCP-finpunkton de la XMPP-servo.
Estas tri nomoj kun malsamaj roloj:
proxy.example.netestas la peranto, kiu ricevas la komencan konekton.xmpp-node.example.netestas la servila finpunkto, kiun la prokseo estas petata atingi.chat.example.netestas la serva domajno de XMPP, ekzemple la domajno post@en la JID de konto.
Servo povas uzi la saman nomon por la lastaj du, sed proksea gastigantnomo anstataŭas nek unu nek la alian. Konservu la celatan identecon de la XMPP-servo en la konekto kaj ĝia TLS-kontrolado.
Por HTTP-prokseo uzu ProxyInfo.forHttpProxy kun la taŭga proksea pordo kaj akreditaĵoj. Tiu vojo bezonas prokseon kapablan tuneli la XMPP-konekton kaj permesi ĝian celan pordon. Prokseo, kiu pritraktas HTTPS-retumadon, ne aŭtomate permesas TCP-konektojn al XMPP-servo sur 5222.
La postulata sekureca reĝimo en la fragmento faras TLS kondiĉo de la XMPP-konekto. Ĝi ne plenumas proksean aŭtentikigon, kaj la prokseaj akreditaĵoj ne ensalutas XMPP-konton. Agordu la XMPP-konton per la normala aŭtentikiga fluo de Smack post starigo de la itinero kaj sekura sesio.
Tenu ekzemplojn ene de ilia API-generacio. La pli malnovaj konstruant-bazitaj ekzemploj ConnectionConfiguration esprimas la saman vojigan koncepton, sed la konstruanto de Smack 4.4 estas la interfaco uzata ĉi tie. Ne necesas reprodukti gastigantnomojn de malaktuala mesaĝprovizanto por apliki tiun koncepton al nuna XMPP-servo.