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 չի բանակցում։

Առնչվող հոդվածներ