Smack 4.4 లో ProxyInfo తో XMPP ప్రాక్సీ సెట్టింగ్లు
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 లో@తర్వాత వచ్చే డొమైన్.
సేవ చివరి రెండింటికి ఒకే పేరును ఉపయోగించవచ్చు, కానీ ప్రాక్సీ హోస్ట్నేమ్ వాటిలో దేనినీ భర్తీ చేయదు. కనెక్షన్లో మరియు దాని TLS ధృవీకరణలో ఉద్దేశించిన XMPP సేవా గుర్తింపును కాపాడండి.
HTTP ప్రాక్సీ కోసం సరైన ప్రాక్సీ పోర్ట్ మరియు ఆధారాలతో ProxyInfo.forHttpProxy ఉపయోగించండి. ఆ మార్గానికి XMPP కనెక్షన్ను టన్నెల్ చేయగల మరియు దాని గమ్యస్థాన పోర్ట్ను అనుమతించగల ప్రాక్సీ అవసరం. HTTPS వెబ్ బ్రౌజింగ్ను నిర్వహించే ప్రాక్సీ 5222 పై XMPP సేవకు TCP కనెక్షన్లను స్వయంచాలకంగా అనుమతించదు.
శకలంలోని తప్పనిసరి భద్రతా మోడ్ TLS ను XMPP కనెక్షన్ యొక్క షరతుగా చేస్తుంది. ఇది ప్రాక్సీ ప్రామాణీకరణ చేయదు, మరియు ప్రాక్సీ ఆధారాలు XMPP ఖాతాలోకి లాగిన్ అవ్వవు. మార్గం మరియు సురక్షిత సెషన్ ఏర్పాటు చేసిన తర్వాత Smack యొక్క సాధారణ ప్రామాణీకరణ ప్రవాహం ద్వారా XMPP ఖాతాను కాన్ఫిగర్ చేయండి.
ఉదాహరణలను వాటి API తరంలో ఉంచండి. పాత కన్స్ట్రక్టర్ ఆధారిత ConnectionConfiguration ఉదాహరణలు అదే రౌటింగ్ భావనను వ్యక్తపరుస్తాయి, కానీ ఇక్కడ ఉపయోగించే ఇంటర్ఫేస్ Smack 4.4 యొక్క బిల్డర్. ఆ భావనను ప్రస్తుత XMPP సేవకు వర్తింపజేయడానికి వాడుకలో లేని సందేశ ప్రదాత యొక్క హోస్ట్నేమ్లను పునఃసృష్టించాల్సిన అవసరం లేదు.