XMPP պրոքսի կարգավորումներ Smack 4.4-ում ProxyInfo-ով
Կցեք ProxyInfo-ն XMPP միացման կառուցիչին՝ առանձին պրոքսի, ծառայության տիրույթի և սերվերի հոսթի կարգավորումներով։
Կարգավորեք այն միացումը, որն իրականում կրում է XMPP հոսքը։ Անկապ URLConnection-ի վրա պրոքսի սահմանելը չի վերահղում Smack-ի TCP միացումը դեպի հաղորդագրությունների ծառայություն։
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 կարգավորման համար։ Շրջապատող հավելվածը մշակում է կառուցիչի ստուգված բացառությունները և տրամադրում պրոքսի հավատարմագրերը։ Բացահայտ հոսթը և պորտը ներկայացնում են XMPP ծառայության փաստացի TCP վերջնակետը։
Կան երեք անուններ՝ տարբեր դերերով․
proxy.example.netայն միջնորդն է, որը ստանում է սկզբնական միացումը։xmpp-node.example.netայն սերվերի վերջնակետն է, որին պրոքսին պետք է հասնի։chat.example.netXMPP ծառայության տիրույթն է, օրինակ՝ հաշվի JID-ում@-ից հետո եկող տիրույթը։
Ծառայությունը կարող է նույն անունը օգտագործել վերջին երկուսի համար, բայց պրոքսի հոսթի անունը չի փոխարինում նրանցից ոչ մեկին։ Պահպանեք նախատեսված XMPP ծառայության ինքնությունը միացման և դրա TLS ստուգման մեջ։
HTTP պրոքսի համար օգտագործեք ProxyInfo.forHttpProxy-ը համապատասխան պրոքսի պորտով և հավատարմագրերով։ Այդ ուղին պահանջում է պրոքսի, որը կարող է թունելավորել XMPP միացումը և թույլատրել դրա նպատակակետ պորտը։ HTTPS վեբ զննարկումը սպասարկող պրոքսը ինքնաբերաբար չի թույլատրում TCP միացումներ 5222 պորտի XMPP ծառայությանը։
Հատվածում պահանջվող անվտանգության ռեժիմը TLS-ը դարձնում է XMPP միացման պայման։ Այն չի կատարում պրոքսի նույնականացում, և պրոքսի հավատարմագրերը չեն մուտք գործում XMPP հաշիվ։ Ուղին և անվտանգ սեսիան հաստատելուց հետո կարգավորեք XMPP հաշիվը Smack-ի սովորական նույնականացման հոսքով։
Օրինակները պահեք իրենց API սերնդի սահմաններում։ Հին կոնստրուկտորահեն ConnectionConfiguration օրինակները արտահայտում են նույն երթուղավորման գաղափարը, սակայն այստեղ օգտագործված ինտերֆեյսը Smack 4.4-ի կառուցիչն է։ Պետք չէ վերարտադրել հնացած հաղորդագրությունների մատակարարի հոսթների անունները՝ այդ գաղափարը ընթացիկ XMPP ծառայության վրա կիրառելու համար։