Конфигурирајте ја врската што навистина го пренесува XMPP текот. Поставувањето прокси на неповрзан URLConnection не ја пренасочува TCP врската на Smack кон услугата за размена на пораки.

Smack 4.4 обезбедува фабрики ProxyInfo за HTTP, SOCKS4 и SOCKS5. Прикачете го добиениот објект на градителот на 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. Околината апликација ги обработува проверените исклучоци на градителот и ги обезбедува акредитивите за прокси. Експлицитниот хост и порта го претставуваат вистинскиот TCP крај на XMPP услугата.

Постојат три имиња со различни улоги:

  • proxy.example.net е посредникот што ја прима почетната врска.
  • xmpp-node.example.net е крајот на серверот до кој проксито треба да стигне.
  • chat.example.net е доменот на XMPP услугата, на пример доменот по @ во JID на сметка.

Услугата може да го користи истото име за последните две, но името на хостот на проксито не заменува ниту едно од нив. Зачувајте го предвидениот идентитет на XMPP услугата во врската и нејзината TLS проверка.

За HTTP прокси користете ProxyInfo.forHttpProxy со соодветната порта и акредитиви. Тој пат бара прокси што може да ја тунелира XMPP врската и да ја дозволи нејзината целна порта. Прокси што раководи со HTTPS веб-прелистување не дозволува автоматски TCP врски до XMPP услуга на 5222.

Задолжителниот безбедносен режим во фрагментот го прави TLS услов за XMPP врската. Тој не врши автентикација на прокси и акредитивите за прокси не се најавуваат на XMPP сметка. Конфигурирајте ја XMPP сметката преку нормалниот тек на автентикација на Smack откако ќе ги воспоставите рутата и безбедната сесија.

Држете ги примерите во нивната генерација на API. Постарите примери ConnectionConfiguration засновани на конструктор го изразуваат истиот концепт на рутирање, но градителот на Smack 4.4 е интерфејсот што се користи овде. Нема потреба да ги репродуцирате имињата на хостови на застарен давател на пораки за да го примените тој концепт на тековна XMPP услуга.

Поврзани статии