Tous les emplacements actifs · 99.99% uptime
Protocoles

WebSocket et proxy

Le WebSocket établit entre le navigateur et le serveur un canal bidirectionnel et maintenu ouvert en permanence. Les tableaux de bord de données en direct, les applications de chat et les notifications en temps réel reposent sur cette technologie. Son fonctionnement via un proxy dépend du type de proxy et de sa configuration.

Comment démarre une connexion WebSocket ?

Le WebSocket n'est pas un protocole distinct : il commence par une requête HTTP et Upgrade change de protocole via ce mécanisme :

FIGUREHandshake d'upgrade WebSocket
UPGRADEClientLe serveurGET /socket HTTP/1.1Upgrade: websocket · Connection: UpgradeSec-WebSocket-Key: dGhlIHNhbXBsZQ==101 Switching Protocols→ Désormais, flux de trames bidirectionnel

Après la réponse 101, la connexion cesse d'être du HTTP et les trames WebSocket commencent à circuler. C'est pourquoi chaque couche intermédiaire doit comprendre l'upgrade.

Comportement selon le type de proxy

FIGUREPrise en charge du WebSocket : selon les types de proxy
COMPATIBILITÉws:// (non chiffré)wss:// (chiffré)Proxy HTTP (compatible Upgrade)FonctionneFonctionneProxy HTTP (ancien)Ne fonctionne pasFonctionneTunnel CONNECTFonctionneFonctionneSOCKS5FonctionneFonctionne

La combinaison la plus sûre wss:// + tunnel CONNECT. Le trafic étant chiffré, le proxy ne peut ni interférer avec le contenu ni casser l'upgrade.

Conseil pratique

Si vous exécutez une application utilisant le WebSocket via un proxy, wss:// privilégiez le chiffré. Comme le tunnel proxy ne transporte que des octets, il ne peut aucunement interférer avec le processus d'upgrade et le problème de compatibilité disparaît.

Pourquoi certains proxies cassent-ils le WebSocket ?

En ws:// trafic non chiffré, le proxy lit la requête. Les proxies anciens ou configurés de façon stricte peuvent commettre les erreurs suivantes :

FIGUREProblèmes de WebSocket et de proxy
PROBLÈMECODE / SYMPTÔMECAUSE PROBABLESOLUTION400 / 502 pendantl'upgradeLe proxy ne transmet pas l'en-tête UpgradeUtilisez wss:// ou privilégiez un tunnel CONNECTLa connexion se coupe au bout de30 à 60 sDélai d'inactivité du proxyAjoutez un ping/pong au niveau applicatifLes messages arrivent avec du retardLe proxy met en mémoire tamponLe buffering doit être désactivé, ou utilisez wssLe 101 n'arrive jamaisLe proxy ne prend pas en charge le changement de protocoleUtilisez SOCKS5 ou un tunnel CONNECTDéconnexions aléatoiresLa rotation d'IP casse la sessionUtilisez une session sticky ou une IP statique

La dernière ligne est souvent négligée : si vous utilisez un rotating proxy, la connexion WebSocket se coupe dès que l'IP change. Dans ce scénario, IP statique est nécessaire.

Éviter les coupures : ping/pong

Les proxies et les routeurs intermédiaires ferment les connexions sur lesquelles aucune donnée ne circule pendant une longue période. Le protocole WebSocket définit des trames ping/pong pour ce cas. La plupart des bibliothèques le font automatiquement, mais vous devrez peut-être ajuster l'intervalle :

FIGUREMaintenir la connexion active
Réglages des bibliothèques01# Python websockets — intervalle de ping02import websockets03async with websockets.connect(04 "wss://ornek.com/socket",05 ping_interval=20, # un ping toutes les 20 secondes06 ping_timeout=10, # coupure si aucun pong n'est reçu07) as ws:08 await ws.send("bonjour")0910# Node.js ws11const ws = new WebSocket("wss://ornek.com/socket", { agent: proxyAgent });12setInterval(() => { if (ws.readyState === 1) ws.ping(); }, 20000);1314# Côté navigateur, il n'y a pas de ping — envoyez un message au niveau applicatif15setInterval(() => ws.send(JSON.stringify({t: "keepalive"})), 25000);

Maintenez l'intervalle de ping inférieur au délai d'inactivité du proxy. 20 à 25 secondes est une valeur sûre pour la plupart des configurations.

WebSocket avec SOCKS5

Comme SOCKS5 ne regarde jamais les données applicatives, il transporte naturellement le WebSocket. Le handshake d'upgrade, le changement de protocole et le flux de trames ne sont pour SOCKS5 qu'un simple flux d'octets. Cela fait de SOCKS5 l'option la plus sûre dans les scénarios WebSocket.

Pour le comportement général de SOCKS5, comment fonctionne SOCKS5 .

Connexion de longue durée et stabilité de l'IP

FIGUREConflit entre rotating proxy et WebSocket
PROBLÈME00:00Connexion WebSocket établie —IP : A05:00Flux de données normal10:00TTL sticky expiré — tentatived'attribution d'une nouvelle IP10:01La connexion TCP en cours est rompue10:02L'application est contrainte dese reconnecter

Le WebSocket est par nature de longue durée ; la rotation, elle, cherche à changer d'IP. Les deux entrent en conflit. Dans ce scénario, une IP statique ou une durée sticky très longue est nécessaire.

Stratégie de reconnexion

Si vous utilisez le WebSocket via un proxy, concevez la coupure non comme une exception mais comme un état attendu :

  • Backoff exponentiel : des attentes croissantes de 1, 2, 4, 8 secondes.
  • Ajoutez du jitter : Cela évite que de nombreux clients déconnectés en même temps ne reviennent tous simultanément.
  • Synchronisation d'état : après la reconnexion, demandez les messages manqués.
  • Limite maximale de tentatives : n'entrez pas dans une boucle infinie ; informez l'utilisateur.
  • Surveillez la santé de la connexion : si la fréquence des coupures augmente, réexaminez la configuration du proxy.

Résumé

Le WebSocket démarre par le mécanisme d'upgrade HTTP ; c'est pourquoi les couches intermédiaires doivent comprendre le changement de protocole. wss:// Utiliser le chiffré et privilégier un tunnel CONNECT ou SOCKS5 élimine en grande partie les problèmes de compatibilité. Les connexions de longue durée entrent en conflit avec les rotating proxies ; dans ce scénario, une IP statique est nécessaire. Maintenez l'intervalle ping/pong inférieur au délai d'expiration du proxy et mettez en place une stratégie de reconnexion solide. Pour les options d'IP statique, ISP proxy .

Questions fréquentes

01Le WebSocket fonctionne-t-il via un proxy ?

Oui. En utilisant wss:// (chiffré) et en passant par un tunnel CONNECT ou par SOCKS5, tout fonctionne sans problème. En trafic ws:// non chiffré, certains proxies ne transmettent pas les en-têtes d'upgrade.

02Pourquoi ma connexion WebSocket se coupe-t-elle sans cesse ?

Les deux causes les plus fréquentes : le délai d'inactivité du proxy et la rotation d'IP. Pour la première, raccourcissez l'intervalle de ping ; pour la seconde, utilisez une IP statique ou une session sticky longue.

03Puis-je utiliser un WebSocket avec un rotating proxy ?

C'est difficile en pratique. Lorsque la rotation change d'IP, la connexion TCP en cours est rompue. Pour les connexions de longue durée, une solution à IP statique est bien plus adaptée.

04SOCKS5 est-il préférable pour le WebSocket ?

Oui, en général. Comme SOCKS5 ne regarde pas les données applicatives, il ne peut pas interférer avec le handshake d'upgrade, ce qui élimine les problèmes de compatibilité.

05Quel intervalle de ping dois-je définir, en secondes ?

20 à 25 secondes est une valeur sûre pour la plupart des configurations. L'essentiel est qu'il reste inférieur au délai d'inactivité du proxy ou des routeurs intermédiaires.

Articles et pages associés

ÉTAPE SUIVANTE

Renforcez votre infrastructure proxy dès aujourd'hui.

Démarrez en quelques minutes avec un forfait payant, ou essayez d'abord notre liste de proxys gratuits.

FREEPROXY.TR

Vous cherchez un proxy gratuit ? Vous êtes au bon endroit

Une plateforme proxy complète pour consulter des adresses de proxy gratuits à jour, comparer les types HTTP et SOCKS et vérifier vos connexions proxy avec des outils gratuits.