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 ની વાટાઘાટ કરતું નથી.