የ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 ውስጥ ከ@ በኋላ ያለው ጎራ።

አንድ አገልግሎት ለመጨረሻዎቹ ሁለት ተመሳሳይ ስም ሊጠቀም ይችላል፣ ነገር ግን የፕሮክሲ አስተናጋጅ ስም ከሁለቱም አንዱን አይተካም። የታሰበውን የXMPP አገልግሎት ማንነት በግንኙነቱ እና በTLS ማረጋገጫው ውስጥ ይጠብቁ።

ለHTTP ፕሮክሲ ProxyInfo.forHttpProxy ከተገቢው የፕሮክሲ ወደብ እና ምስክሮች ጋር ይጠቀሙ። ይህ መንገድ የXMPP ግንኙነቱን ማስተላለፍ የሚችል እና የመድረሻ ወደቡን የሚፈቅድ ፕሮክሲ ይፈልጋል። HTTPS የድረ-ገጽ አሰሳ የሚሰራ ፕሮክሲ በ5222 ላይ ወደ XMPP አገልግሎት የሚደረግ TCP ግንኙነትን በራስ-ሰር አይፈቅድም።

በክፍሉ ውስጥ ያለው አስፈላጊው የደህንነት ሁነታ TLSን የXMPP ግንኙነት ቅድመ ሁኔታ ያደርገዋል። የፕሮክሲ ማረጋገጫ አያከናውንም፣ የፕሮክሲ ምስክሮችም ወደ XMPP መለያ አይገቡም። መንገዱ እና አስተማማኝ ክፍለ ጊዜ ከተመሠረተ በኋላ XMPP መለያውን በSmack የተለመደው የማረጋገጫ ሂደት ያዋቅሩ።

ምሳሌዎችን በየAPI ትውልዳቸው ውስጥ ይጠብቁ። የቆዩት በኮንስትራክተር ላይ የተመሠረቱ የConnectionConfiguration ምሳሌዎች ተመሳሳይ የመንገድ ጽንሰ-ሐሳብ ይገልጻሉ፣ ነገር ግን በSmack 4.4 ያለው ገንቢ በዚህ ጥቅም ላይ የዋለው በይነገጽ ነው። ያንን ጽንሰ-ሐሳብ በአሁኑ XMPP አገልግሎት ላይ ለመተግበር ያረጀ የመልዕክት አቅራቢ አስተናጋጅ ስሞችን ማስተዋወቅ አያስፈልግም።

ተዛማጅ ጽሑፎች