Les en-têtes HTTP dans les Websockets client API

Dirait qu'il est facile d'ajouter des en-têtes HTTP personnalisés à votre client websocket avec n'importe quel en-tête HTTP client qui prend en charge ce, mais je ne trouve pas comment le faire avec l'API JSON.

Pourtant, il semble qu'il devrait y avoir un soutien ces en-têtes dans la spec.

Quelqu'un a une idée sur comment faire?

var ws = new WebSocket("ws://example.com/service");

Plus précisément, j'ai besoin d'être en mesure d'envoyer un HTTP en-tête d'Autorisation.

  • Je pense qu'une bonne solution est de permettre à la WebSocket pour se connecter sans autorisation, mais ensuite, bloquer et d'attendre sur le serveur pour recevoir l'autorisation de la webSocket qui transmet les informations d'autorisation en son événement onopen.
  • La suggestion de @Motes semble être le meilleur ajustement. Il était très facile de faire une autorisation d'appel de onOpen qui vous permet d'accepter ou de rejeter la prise basé sur l'autorisation de la réponse. J'ai d'abord tenté l'envoi de jeton d'authentification dans la Sec-WebSocket-en-tête de Protocole, mais qui se sent comme un hack.