Python websocket-client: підключення через проксі SOCKS5
Налаштуйте websocket-client із задокументованим типом проксі SOCKS і дозвольте бібліотеці керувати шаром TLS з'єднання wss.
from websocket import create_connection
ws = create_connection(
"wss://service.example.net/socket",
http_proxy_host="127.0.0.1",
http_proxy_port=1080,
proxy_type="socks5h",
timeout=15,
)
Використовуйте це з websocket-client і його задокументованою залежністю від SOCKS, яка вже доступна. Для публічних служб WSS на дозволеному маршруті публічного проксі список проксі SOCKS5 надає кандидатів для хоста й порту проксі. Хоча ключі хоста/порту називаються http_proxy_*, proxy_type='socks5h' вибирає SOCKS5 з обробкою імені призначення на боці проксі.
Порядок: переговори з проксі для отримання потоку до призначення, перевірений TLS для WSS, потім рукостискання WebSocket. Ім'я хоста проксі не є TLS-ідентичністю сайту. Вимкнення перевірки не виправляє неправильно розташований етап TLS.
Для проксі з автентифікацією використовуйте задокументований аргумент встановленої версії для цього типу проксі. Заголовки WebSocket застосунку не автентифікують попереднього посередника.
Сокет, наданий вручну, переносить відповідальність за ці шари на інтеграцію. Віддавайте перевагу інтерфейсу бібліотеки, коли це доречно, і тримайте websocket-client окремо від пакета websockets з окремим версіюванням.