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 ਦੀ ਗੱਲਬਾਤ ਨਹੀਂ ਕਰਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ