Python websocket-client: conectar através de um proxy SOCKS5
Configure o websocket-client com um tipo de proxy SOCKS documentado e deixe a biblioteca tratar a camada TLS de uma conexão 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,
)
Use isto com o websocket-client e a sua dependência SOCKS documentada já disponível. Para serviços WSS públicos numa rota de proxy público permitida, a lista de proxies SOCKS5 fornece candidatos para o host e a porta do proxy. Embora as chaves de host/porta se chamem http_proxy_*, proxy_type='socks5h' seleciona SOCKS5 com tratamento do nome de destino do lado do proxy.
A ordem é negociação do proxy para obter um fluxo de destino, TLS verificado para WSS e depois o handshake WebSocket. O nome do host do proxy não é a identidade TLS do site. Desativar a verificação não corrige uma etapa TLS mal colocada.
Para um proxy autenticado, use o argumento documentado da versão instalada para esse tipo de proxy. Os cabeçalhos WebSocket da aplicação não autenticam o intermediário anterior.
Um socket fornecido manualmente transfere a responsabilidade por essas camadas para a integração. Prefira a interface da biblioteca quando adequado e mantenha o websocket-client separado do pacote websockets versionado separadamente.