WebSocket envoyer des informations supplémentaires sur la connexion
Est-il un moyen pour un client WebSocket pour envoyer des informations supplémentaires sur la connexion initiale au serveur WebSocket?
Je demande parce que je veux que le client pour l'envoi de l'ID d'utilisateur (string) pour le serveur immédiatement. Je ne veux pas le client pour l'envoi de l'ID d'utilisateur dans le onopen de rappel. Pourquoi? Parce que c'est plus rapide et plus simple.
Si l'API WebSocket ne vais pas vous laisser faire cela, pourquoi pas? Si il n'y a pas de bonne raison, comment pourrais-je suggérer d'ajouter cette fonctionnalité simple?
il s'agit d'une url, vous avez l'ensemble de la chaîne de recherche pour votre usage...
Génie!!!
Génie!!!
OriginalL'auteur ma11hew28 | 2013-10-19
Vous devez vous connecter pour publier un commentaire.
Mise À Jour De Réponse
@dandavis est un génie. Son commentaire sur la question de l'envoi de l'ID utilisateur dans la chaîne de requête de la première (url) argument de la WebSocket constructeur fonctionne! Et, je suis sûr que c'est uniquement envoyée une fois par le client lors de la ouverture de la poignée de main (1.3) du protocole WebSocket (RFC 6455).
Il a même travaillé pour l'envoyer dans le chemin, que je préfère pour l'instant puisque le serveur WebSocket que j'ai fait est juste pour les WebSockets. Je suis en utilisant Node.js avec ws. Je me connecte à l'URL
ws://localhost:5000/4
, où4
est l'ID de l'utilisateur. Pour obtenir l'ID de l'utilisateur, je news.upgradeReq.url
, comme suit:Prochain, pour le rendre sûr, je vais passer le jeton d'accès au lieu de l'ID d'utilisateur.
Réponse Originale À Cette Question
Vous pouvez passer l'ID de l'utilisateur (string) que la seconde (protocoles) argument de la WebSocket constructeur.
Qui devrait fonctionner, mais il n'est pas censé pour ce que vous voulez. C'est certainement un hack. Alors, je ne vous le recommande pas. Aussi, le serveur se fera l'écho de l'ID d'utilisateur pour le client dans sa poignée de main. Et, vous n'avez pas besoin de cela. Ce serait extra de données envoyées sur le fil qui ne sert à rien de vous.
Je ne suis pas sûr pourquoi l'API WebSocket ne pas vous laisser faire ce que vous voulez. C'est peut-être plus sûr de cette façon.
Eh bien, j'étais une personne différente alors que je suis maintenant. Les temps changent. Je change avec 'em. 😉 Toujours à apprendre. Toujours en évolution.
Vous pouvez utiliser le chemin d'accès ou des composants de requête, mais pas des identificateurs de fragment dans WS Uri. Vous ne devez pas utiliser WS sous-protocole. Ce n'est pas seulement un hack, mais casser des choses dans beaucoup de façons. Vous pouvez également utiliser le protocole HTTP en-têtes personnalisés ou des cookies.
OriginalL'auteur ma11hew28