XMPP ағынын шын мәнінде тасымалдайтын қосылымды конфигурациялаңыз. Байланыссыз URLConnection-ке прокси орнату Smack-тың TCP қосылымын хабар алмасу қызметіне бағыттамайды.

Smack 4.4 HTTP, SOCKS4 және SOCKS5 үшін ProxyInfo фабрикаларын ұсынады. Пайда болған нысанды 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();

Бұл бар Smack 4.4 конфигурациясына арналған конфигурация үзіндісі. Қоршаған қолданба құрастырушының тексерілетін ерекшеліктерін өңдейді және прокси тіркелгі деректерін береді. Айқын хост пен порт XMPP қызметінің нақты TCP соңғы нүктесін білдіреді.

Әртүрлі рөлдері бар үш атау бар:

  • proxy.example.net бастапқы қосылымды қабылдайтын делдал.
  • xmpp-node.example.net прокси жетуі талап етілетін сервердің соңғы нүктесі.
  • chat.example.net XMPP қызмет домені, мысалы, тіркелгі JID-індегі @ белгісінен кейінгі домен.

Қызмет соңғы екеуі үшін бірдей атауды пайдалана алады, бірақ прокси хост атауы олардың ешқайсысын алмастырмайды. XMPP қызметінің көзделген сәйкестігін қосылымда және оның TLS тексеруінде сақтаңыз.

HTTP прокси үшін тиісті прокси портымен және тіркелгі деректерімен ProxyInfo.forHttpProxy қолданыңыз. Бұл жол XMPP қосылымын туннельдеуге және оның межелі портына рұқсат беруге қабілетті проксиді қажет етеді. HTTPS веб-шолуды атқаратын прокси 5222 портындағы XMPP қызметіне TCP қосылымдарына автоматты түрде рұқсат бермейді.

Үзіндідегі міндетті қауіпсіздік режимі TLS-ті XMPP қосылымының шартына айналдырады. Ол прокси аутентификациясын орындамайды және прокси тіркелгі деректері XMPP тіркелгісіне кірмейді. Маршрут пен қауіпсіз сеанс орнатылғаннан кейін XMPP тіркелгісін Smack-тың қалыпты аутентификация ағыны арқылы конфигурациялаңыз.

Мысалдарды өздерінің API буыны шегінде ұстаңыз. Ескі конструкторға негізделген ConnectionConfiguration мысалдары сол маршруттау тұжырымдамасын білдіреді, бірақ мұнда қолданылатын интерфейс Smack 4.4 құрастырушысы. Бұл тұжырымдаманы ағымдағы XMPP қызметіне қолдану үшін ескірген хабар қызметі провайдерінің хост атауларын қайта шығарудың қажеті жоқ.

Қатысты мақалалар