Sanidi muunganisho ambao kwa kweli hubeba mtiririko wa XMPP. Kuweka proksi kwenye URLConnection isiyohusiana hakuuelekezi muunganisho wa TCP wa Smack kwenye huduma ya ujumbe.

Smack 4.4 hutoa viwanda ProxyInfo kwa HTTP, SOCKS4 na SOCKS5. Ambatisha kitu kinachotokana na kijenzi cha muunganisho wa 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();

Hiki ni kipande cha usanidi kwa usanidi uliopo wa Smack 4.4. Programu inayozunguka hushughulikia vighairi vilivyokaguliwa vya kijenzi na hutoa nywila za proksi. Mwenyeji na mlango dhahiri huwakilisha kituo halisi cha TCP cha huduma ya XMPP.

Kuna majina matatu yenye majukumu tofauti:

  • proxy.example.net ni mpatanishi anayepokea muunganisho wa kwanza.
  • xmpp-node.example.net ni kituo cha seva ambacho proksi inaombwa kufikia.
  • chat.example.net ni kikoa cha huduma ya XMPP, kama kikoa baada ya @ katika JID ya akaunti.

Huduma inaweza kutumia jina moja kwa mbili za mwisho, lakini jina la mwenyeji wa proksi halibadilishi yoyote kati yao. Hifadhi utambulisho uliokusudiwa wa huduma ya XMPP katika muunganisho na uthibitishaji wake wa TLS.

Kwa proksi ya HTTP, tumia ProxyInfo.forHttpProxy na mlango unaofaa wa proksi na nywila. Njia hiyo inahitaji proksi inayoweza kupitisha muunganisho wa XMPP kwa handaki na kuruhusu mlango wake lengwa. Proksi inayoshughulikia kuvinjari wavuti kwa HTTPS hairuhusu kiotomatiki muunganisho wa TCP kwenye huduma ya XMPP kwenye 5222.

Hali ya usalama inayohitajika katika kipande hufanya TLS kuwa sharti la muunganisho wa XMPP. Haifanyi uthibitishaji wa proksi, na nywila za proksi haziingii kwenye akaunti ya XMPP. Sanidi akaunti ya XMPP kupitia mtiririko wa kawaida wa uthibitishaji wa Smack baada ya kuanzisha njia na kikao salama.

Weka mifano ndani ya kizazi chao cha API. Mifano ya zamani ya ConnectionConfiguration inayotegemea kijenzi huonyesha dhana hiyo hiyo ya uelekezaji, lakini kijenzi cha Smack 4.4 ni kiolesura kinachotumika hapa. Hakuna haja ya kuzalisha tena majina ya mwenyeji ya mtoa huduma wa ujumbe aliyepitwa na wakati ili kutumia dhana hiyo kwenye huduma ya XMPP ya sasa.

Makala zinazohusiana