Smack 4.4 دىكى XMPP ۋاكالەتچى تەڭشەكلىرى ProxyInfo بىلەن
ProxyInfo نى XMPP ئۇلىنىش قۇرغۇچىغا ئۇلاڭ، ۋاكالەتچى، مۇلازىمەت دائىرىسى ۋە مۇلازىمېتىر ئۆي ئىگىسى ئۈچۈن ئايرىم تەڭشەكلەر بىلەن.
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.netXMPP مۇلازىمەت دائىرىسى، مەسىلەن ھېسابات JID دىكى@دىن كېيىنكى دائىرە.
مۇلازىمەت ئاخىرقى ئىككىسىگە ئوخشاش ئىسىمنى ئىشلىتەلەيدۇ، ئەمما ۋاكالەتچىنىڭ ئۆي ئىگىسى ئىسمى ئۇلارنىڭ ھېچقايسىسىنىڭ ئورنىنى ئالمايدۇ. XMPP مۇلازىمىتىنىڭ مەقسەت قىلىنغان كىملىكىنى ئۇلىنىش ۋە ئۇنىڭ TLS دەلىللىشىدە ساقلاڭ.
HTTP ۋاكالەتچى ئۈچۈن مۇۋاپىق ۋاكالەتچى ئېغىزى ۋە سالاھىيەت ئۇچۇرى بىلەن ProxyInfo.forHttpProxy نى ئىشلىتىڭ. بۇ يول XMPP ئۇلىنىشىنى تۇنېللاش ۋە ئۇنىڭ مەنزىل ئېغىزىغا رۇخسەت قىلىش ئىقتىدارى بار ۋاكالەتچىنى تەلەپ قىلىدۇ. HTTPS تور كۆرۈشنى بىر تەرەپ قىلىدىغان ۋاكالەتچى 5222 دىكى XMPP مۇلازىمىتىگە TCP ئۇلىنىشىغا ئاپتوماتىك رۇخسەت قىلمايدۇ.
بۆلەكتىكى تەلەپ قىلىنىدىغان بىخەتەرلىك ھالىتى TLS نى XMPP ئۇلىنىشىنىڭ شەرتى قىلىدۇ. ئۇ ۋاكالەتچى دەلىللەشنى ئىجرا قىلمايدۇ، ۋاكالەتچىنىڭ سالاھىيەت ئۇچۇرى XMPP ھېساباتىغا كىرمەيدۇ. يول ۋە بىخەتەر سېسسىيە قۇرۇلغاندىن كېيىن XMPP ھېساباتىنى Smack نىڭ نورمال دەلىللەش ئېقىمى ئارقىلىق سەپلەڭ.
مىساللارنى ئۆزىنىڭ API ئەۋلادى ئىچىدە ساقلاڭ. كونا قۇرغۇچىغا ئاساسلانغان ConnectionConfiguration مىساللىرى ئوخشاش يول باشلاش ئىدىيەسىنى ئىپادىلەيدۇ، ئەمما بۇ يەردە ئىشلىتىلگەن كۆرۈنمە يۈز Smack 4.4 نىڭ قۇرغۇچىسى. بۇ ئىدىيەنى ھازىرقى XMPP مۇلازىمىتىگە قوللىنىش ئۈچۈن كونا خەۋەر تەمىنلىگۈچىنىڭ ئۆي ئىگىسى ئىسىملىرىنى قايتا ياساشنىڭ زۆرۈرىيىتى يوق.