Qpid JMS ၏ Netty သယ်ယူပို့ဆောင်မှုသည် ချိတ်ဆက်မှု တိုးချဲ့မှုတစ်ခုမှတစ်ဆင့် ပရောက်စီ ကိုင်တွယ်သူအသစ် ရနိုင်သည်။

Supplier<ProxyHandler> handlers = () ->
    new Socks5ProxyHandler(
        new InetSocketAddress("proxy.example", 1080));

JmsConnectionFactory factory = new JmsConnectionFactory(
    "amqps://broker.example:5671");
factory.setExtension(
    JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(),
    (connection, remote) -> handlers);

Supplier နှင့် InetSocketAddress သည် JDK အမျိုးအစားများ ဖြစ်သည်။ ပရောက်စီ ကိုင်တွယ်သူများသည် Netty ပိုင်ဖြစ်ပြီး factory နှင့် extension enum သည် org.apache.qpid.jms ပိုင်ဖြစ်သည်။

ခွင့်ပြုထားသော အများသုံး ပရောက်စီလမ်းကြောင်းပေါ်တွင် အများသုံး ဝင်ရောက်နိုင်သော broker အတွက် SOCKS5 ပရောက်စီစာရင်းသည် host နှင့် port ကိုယ်စားလှယ်လောင်းများကို ပေးသည်။ ရွေးချယ်ထားသော node သည် broker ၏ အမှန်တကယ် host နှင့် port ကို ခွင့်ပြုကြောင်း အတည်ပြုပါ။ တိုးချဲ့မှုသည် ပေးသွင်းသူကို ပြန်ပေးသည်။ ပေးသွင်းသူ ခေါ်ဆိုမှုတိုင်း ကိုင်တွယ်သူအသစ် ဖန်တီးသည်။ ချိတ်ဆက်မှုများစွာအတွက် ဖမ်းယူထားသော ပြောင်းလဲနိုင်သော ကိုင်တွယ်သူတစ်ခုကို ပြန်ပေးခြင်းသည် ထိုပိုင်ဆိုင်မှု အစီအစဉ်ကို ချိုးဖောက်မည်။

SOCKS5 အတည်ပြုခြင်းအတွက် အသုံးပြုသူအမည် နှင့် စကားဝှက် လက်ခံသော ကိုင်တွယ်သူ overload ကို အသုံးပြုပါ။ broker အထောက်အထားများကို JMS ချိတ်ဆက်မှုပေါ်တွင် ထားရှိပြီး အမှန်တကယ် AMQPS broker URI နှင့် TLS အမည်ကို ထိန်းသိမ်းပါ။

တိုးချဲ့မှုသည် Netty ၏ HTTP, SOCKS4 နှင့် SOCKS5 ပရောက်စီ ကိုင်တွယ်သူများကို ပံ့ပိုးသည်။ HTTP CONNECT အတွက် ကြားခံသူသည် broker ၏ ပစ်မှတ် port ကို ခွင့်ပြုရမည်။

ဆက်စပ်ဆောင်းပါးများ