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.

Похожие статьи