Socket.io-client: Comment définir les en-têtes de requête lors de la connexion au serveur ?

Créé le 9 juil. 2014  ·  13Commentaires  ·  Source: socketio/socket.io-client

comment définir des en-têtes de requête personnalisés lors de la connexion socket.io utiliser le client js

Feature request

Commentaire le plus utile

@muhammadnasr Passez les options dans le deuxième argument, le premier étant l'url :

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

Tous les 13 commentaires

J'ai aussi besoin de ça... Avez-vous trouvé une solution ?

Je suis aussi intéressé par cela.

J'ai vu comment le faire sur le client Java socket.io mais pas sur le JS

Ne fonctionnera pas avec toutes les méthodes de transport.
Si vous utilisez le sondage XHR/Ajax, c'est possible, mais pas pour WebSockets sur HTML5.

http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-apic

Je cherche une solution à.

Qu'essayez-vous de réaliser ? Vous ne pouvez pas utiliser les paramètres d'URL ?

J'essaie d'écrire un test pour vérifier si les websockets peuvent être espionnés avant et après le middleware d'authentification.

Cependant, pour m'authentifier avec succès, je dois envoyer une session de cookie avec la demande de mise à niveau http initiale. Cela fonctionne dans le navigateur, je veux juste que cela fonctionne également dans mes tests de nœuds.

Y a-t-il des progrès à ce sujet? Ou un indice sur la façon d'obtenir/définir le cookie-session/sessionId dans socket.io ?

En fait, je l'ai fait fonctionner. Les détails de la poignée de main http initiale sont disponibles à socket.request . Là, vous trouverez la session. Par exemple, en utilisant le middleware socket.io :

io.use(function(socket, next){
    if (!socket.request.session){
      console.log('no session in socket')
      socket.disconnect();
    }
    next();
  });

Depuis la version 2.0.0 , vous pouvez désormais définir des en-têtes de requête avec l'option extraHeaders :

const socket = io({
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

Comment puis-je ajouter une URL à cet exemple
const socket = io({
Options de transport : {
sondage : {
extraHeaders : {
'x-clientid': 'abc'
}
}
}
});

@muhammadnasr Passez les options dans le deuxième argument, le premier étant l'url :

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

C'est génial.

Avez-vous un exemple de code pour définir des en-têtes pour iOS et Android SDK ?

Merci beaucoup.

Les en-têtes peuvent-ils être définis dynamiquement ?

Cette page vous a été utile?
0 / 5 - 0 notes