Smack 4.4 da ProxyInfo bilan XMPP proksi sozlamalari
ProxyInfo ni XMPP ulanish quruvchisiga biriktiring, proksi, xizmat domeni va server xosti uchun alohida sozlamalar bilan.
XMPP oqimini haqiqatda olib o'tadigan ulanishni sozlang. Aloqasiz URLConnection ga proksi o'rnatish Smack ning TCP ulanishini xabar almashish xizmatiga yo'naltirmaydi.
Smack 4.4 HTTP, SOCKS4 va SOCKS5 uchun ProxyInfo fabrikalarini taqdim etadi. Olingan obyektni XMPP ulanish quruvchisiga biriktiring:
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();Bu mavjud Smack 4.4 sozlamasi uchun konfiguratsiya bo'lagi. Atrofdagi dastur quruvchining tekshirilgan istisnolarini boshqaradi va proksi hisob ma'lumotlarini taqdim etadi. Aniq ko'rsatilgan xost va port XMPP xizmatining haqiqiy TCP oxirgi nuqtasini bildiradi.
Turli rollarga ega uchta nom bor:
proxy.example.netboshlang'ich ulanishni qabul qiluvchi vositachi.xmpp-node.example.netproksidan yetib borishi so'ralgan server oxirgi nuqtasi.chat.example.netXMPP xizmat domeni, masalan, hisob JID idagi@dan keyingi domen.
Xizmat oxirgi ikkitasi uchun bir xil nomdan foydalanishi mumkin, lekin proksi xost nomi ularning hech birini almashtirmaydi. XMPP xizmatining ko'zda tutilgan identifikatorini ulanishda va uning TLS tekshiruvida saqlang.
HTTP proksi uchun mos proksi porti va hisob ma'lumotlari bilan ProxyInfo.forHttpProxy dan foydalaning. Bu yo'l XMPP ulanishini tunnel qila oladigan va uning manzil portiga ruxsat beradigan proksini talab qiladi. HTTPS veb-ko'rishni boshqaradigan proksi 5222 dagi XMPP xizmatiga TCP ulanishlariga avtomatik ruxsat bermaydi.
Bo'lakdagi majburiy xavfsizlik rejimi TLS ni XMPP ulanishining shartiga aylantiradi. U proksi autentifikatsiyasini bajarmaydi va proksi hisob ma'lumotlari XMPP hisobiga kirmaydi. Marshrut va xavfsiz sessiya o'rnatilgandan so'ng XMPP hisobini Smack ning odatdagi autentifikatsiya oqimi orqali sozlang.
Misollarni o'z API avlodi ichida saqlang. Eski konstruktorga asoslangan ConnectionConfiguration misollari xuddi shu marshrutlash tushunchasini ifodalaydi, lekin bu yerda ishlatiladigan interfeys Smack 4.4 quruvchisidir. Bu tushunchani joriy XMPP xizmatiga qo'llash uchun eskirgan xabar provayderining xost nomlarini qayta yaratish shart emas.