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.