Python websocket-client : se connecter via un proxy SOCKS5
Configurez websocket-client avec un type de proxy SOCKS documenté et laissez la bibliothèque gérer la couche TLS d'une connexion 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,
)
Utilisez ceci avec websocket-client et sa dépendance SOCKS documentée déjà disponible. Pour les services WSS publics sur une route de proxy public autorisée, la liste de proxys SOCKS5 fournit des candidats pour l'hôte et le port du proxy. Bien que les clés hôte/port s'appellent http_proxy_*, proxy_type='socks5h' sélectionne SOCKS5 avec la gestion du nom de destination côté proxy.
L'ordre est la négociation du proxy pour obtenir un flux de destination, TLS vérifié pour WSS, puis la poignée de main WebSocket. Le nom d'hôte du proxy n'est pas l'identité TLS du site web. Désactiver la vérification ne répare pas une étape TLS mal placée.
Pour un proxy authentifié, utilisez l'argument documenté de la version installée pour ce type de proxy. Les en-têtes WebSocket de l'application n'authentifient pas l'intermédiaire précédent.
Un socket fourni manuellement transfère la responsabilité de ces couches à l'intégration. Préférez l'interface de la bibliothèque lorsqu'elle convient, et gardez websocket-client distinct du paquet websockets versionné séparément.