comment définir des en-têtes de requête personnalisés lors de la connexion socket.io utiliser le client js
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 ?
Commentaire le plus utile
@muhammadnasr Passez les options dans le deuxième argument, le premier étant l'url :