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 සේවාවකට යෙදීමට කල් ඉකුත් වූ පණිවිඩ සපයන්නෙකුගේ හෝස්ට් නාම නැවත නිපදවීම අවශ්‍ය නැත.

අදාළ ලිපි