Smack 4.4 માં ProxyInfo સાથે XMPP પ્રોક્સી સેટિંગ્સ
XMPP કનેક્શન બિલ્ડરમાં ProxyInfo જોડો, પ્રોક્સી, સેવા-ડોમેન અને સર્વર-હોસ્ટ માટે અલગ સેટિંગ્સ સાથે.
જે કનેક્શન ખરેખર 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.netએ XMPP સેવા ડોમેન છે, જેમ કે ખાતાના JID માં@પછીનું ડોમેન.
સેવા છેલ્લા બે માટે એક જ નામ વાપરી શકે છે, પરંતુ પ્રોક્સી હોસ્ટનું નામ તેમાંથી કોઈનું સ્થાન લેતું નથી. કનેક્શનમાં અને તેની TLS ચકાસણીમાં ઇચ્છિત XMPP સેવા ઓળખ જાળવો.
HTTP પ્રોક્સી માટે યોગ્ય પ્રોક્સી પોર્ટ અને ઑથેન્ટિકેશન વિગતો સાથે ProxyInfo.forHttpProxy વાપરો. તે માર્ગને એવી પ્રોક્સીની જરૂર છે જે XMPP કનેક્શન ટનલ કરી શકે અને તેના ગંતવ્ય પોર્ટને મંજૂરી આપે. HTTPS વેબ બ્રાઉઝિંગ સંભાળતી પ્રોક્સી 5222 પર XMPP સેવા તરફ TCP કનેક્શનને આપમેળે મંજૂરી આપતી નથી.
ટુકડામાંનો જરૂરી સુરક્ષા મોડ TLS ને XMPP કનેક્શનની શરત બનાવે છે. તે પ્રોક્સી પ્રમાણીકરણ કરતું નથી, અને પ્રોક્સી ઑથેન્ટિકેશન વિગતો XMPP ખાતામાં લૉગ ઇન કરતી નથી. માર્ગ અને સુરક્ષિત સત્ર સ્થાપ્યા પછી Smack ના સામાન્ય પ્રમાણીકરણ પ્રવાહ દ્વારા XMPP ખાતું ગોઠવો.
ઉદાહરણોને તેમની API પેઢીની અંદર રાખો. જૂના કન્સ્ટ્રક્ટર-આધારિત ConnectionConfiguration ઉદાહરણો એ જ રૂટિંગ વિભાવના વ્યક્ત કરે છે, પરંતુ અહીં વપરાતું ઇન્ટરફેસ Smack 4.4 નું બિલ્ડર છે. તે વિભાવનાને વર્તમાન XMPP સેવા પર લાગુ કરવા બહિષ્કૃત મેસેજિંગ પ્રદાતાના હોસ્ટનાં નામ પુનઃઉત્પાદિત કરવાની જરૂર નથી.