Jedis SOCKS ساکٹ فیکٹری کو کیا واپس کرنا چاہیے
Jedis 5.2.0 Redis کے لیے تیار منسلک ساکٹ کی توقع رکھتا ہے، ضرورت ہو تو TLS سمیت؛ صرف پراکسی چننا وہ کنکشن فراہم نہیں کرتا۔
JedisSocketFactory.createSocket کو Redis ٹریفک لے جانے کے لیے تیار منسلک ساکٹ واپس کرنا چاہیے۔ Jedis 5.2.0 میں ایپلیکیشن وہ فیکٹری اور اپنی Redis کلائنٹ ترتیب یہاں دیتی ہے:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory redis.clients.jedis.JedisSocketFactory نافذ کرتا ہے، اور redisConfig ایپلیکیشن کا JedisClientConfig ہے۔ کنسٹرکٹر چلتے وقت جڑنے کے لیے تیار رہیں: یہ فوراً تصدیق اور دیگر Redis ترتیبات کر سکتا ہے۔
ایک ساکٹ کو بننے سے حوالے ہونے تک ٹریک کریں
بغیر تصدیق والے SOCKS5 راستے کے لیے، فیکٹری java.net.Socket واضح Proxy.Type.SOCKS ثالث کے ساتھ بنا کر پھر Redis ہوسٹ اور پورٹ سے جڑ سکتی ہے۔ منزل کو حل نہ ہونے دیں اگر SOCKS سرور کو ہوسٹ نام حل کرنا ہو۔
کنکشن کی کوشش محدود کریں اور مطلوبہ ریڈ ٹائم آؤٹ لاگو کریں۔ کنکشن ناکام ہو تو وہ ساکٹ بند کریں اور JedisConnectionException کی اطلاع دیں؛ فیکٹری انٹرفیس جانچا ہوا IOException اعلان نہیں کرتا۔
اگر Redis کو TLS درکار ہو تو ساکٹ واپس کرنے سے پہلے TLS قائم اور تصدیق کریں۔ یہ نہیں مانا جا سکتا کہ الگ فلیگ فیکٹری کے واپس کردہ کسی بھی ساکٹ کو بدل دے گا۔ پول کے لیے، متبادل کنکشن سمیت ہر فیکٹری کال پر نئے ساکٹ کے ساتھ یہ زندگی چکر دہرائیں۔
عالمی ProxySelector میں HTTP کا انتخاب اس کام کا متبادل نفاذ نہیں ہے۔ Redis اپنے ساکٹ پر RESP بھیجتا ہے؛ اس سے یہ HTTP نہیں بنتا اور CONNECT پر بات چیت نہیں کرتا۔