بلاکنگ، غیر TLS AMQP کنکشن کے لیے Spring کا RabbitConnectionFactoryBean RabbitMQ Java کلائنٹ کو SOCKS سے واقف ساکٹ فیکٹری دے سکتا ہے۔

اگر Commons Net پہلے سے دستیاب ہے تو شروع کرنے سے پہلے موجودہ factory bean ترتیب دیں:

var socksProxy = new java.net.Proxy(
    java.net.Proxy.Type.SOCKS,
    new java.net.InetSocketAddress("proxy.example", 1080));
rabbitFactoryBean.setSocketFactory(
    new org.apache.commons.net.DefaultSocketFactory(socksProxy));

rabbitFactoryBean ایپلیکیشن کا RabbitConnectionFactoryBean ہے۔ اس کا broker ہوسٹ، AMQP پورٹ، اکاؤنٹ اور Spring کنکشن مینجمنٹ سیٹ اپ برقرار رکھیں۔ broker ہی منزل رہتا ہے؛ SocketFactory وہ ساکٹ بناتا ہے جو SOCKS کے ذریعے اس تک پہنچتے ہیں۔ عوامی broker کے خلاف غیر حساس ٹیسٹ کے لیے، جہاں عوامی ثالثوں کی اجازت ہے، SOCKS پراکسی فہرست امیدوار پیش کرتی ہے؛ runtime کے معاون SOCKS ورژن سے مطابقت رکھیں اور اصل broker ہوسٹ اور پورٹ تک رسائی کی تصدیق کریں۔

Commons Net کی فیکٹری دی گئی Proxy استعمال کرتے ہوئے غیر منسلک java.net.Socket بناتی ہے۔ پھر RabbitMQ کا بلاکنگ کنکشن کوڈ اس ساکٹ کو اپنے معمول کے کنکشن راستے سے جوڑتا ہے۔ صرف HTTP_PROXY ایکسپورٹ کرنا یہ AMQP ساکٹ فیکٹری فراہم نہیں کرتا۔

RabbitMQ دستاویز کرتا ہے کہ SocketFactory ہک بلاکنگ I/O پر لاگو ہوتا ہے۔ NIO یا کسی اور ٹرانسپورٹ کے لیے ترتیب دیے گئے کلائنٹ کو اس ٹرانسپورٹ کا معاون ہک درکار ہوتا ہے۔ AMQPS کے لیے مناسب TLS ساکٹ فیکٹری اور منزل کی تصدیق برقرار رکھیں؛ اوپر دی گئی سادہ فیکٹری سے اسے بدلنا مکمل TLS ترتیب نہیں ہے۔

متعلقہ مضامین