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 وتحقق منه قبل إعادة المقبس. لا يمكن افتراض أن راية منفصلة ستحوّل مقبسًا عشوائيًا أعاده المصنع. بالنسبة لمجمّع، كرّر دورة الحياة هذه بمقبس جديد في كل استدعاء للمصنع، بما في ذلك اتصالات الاستبدال.

اختيار HTTP في ProxySelector عام ليس تنفيذًا بديلًا لهذا العمل. يرسل Redis بروتوكول RESP عبر مقبسه؛ وهو لا يصبح بذلك HTTP ولا يتفاوض على CONNECT.

مقالات ذات صلة