Налады проксі XMPP у Smack 4.4 з ProxyInfo
Далучыце ProxyInfo да будаўніка злучэння XMPP з асобнымі наладамі проксі, дамена паслугі і хоста сервера.
Наладзьце злучэнне, якое сапраўды перадае паток 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.