জেডিস 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 নিয়ে দর কষাকষি করে না।