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 वर वाटाघाटी करत नाही.