Je veux construire un URI WebSocket par rapport à l'URI de la page côté navigateur. Dites, dans mon cas, convertissez les URI HTTP comme
http://example.com:8000/path
https://example.com:8000/path
à
ws://example.com:8000/path/to/ws
wss://example.com:8000/path/to/ws
Ce que je fais actuellement, c'est remplacer les 4 premières lettres «http» par «ws», et y ajouter «/ to / ws». Y a-t-il un meilleur moyen pour cela?
websocket
uri
relative-path
neuront
la source
la source
path/to/ws
? Où cela mène-t-il exactement? MerciRéponses:
Si votre serveur Web prend en charge WebSockets (ou un module de gestionnaire WebSocket), vous pouvez utiliser le même hôte et le même port et changer simplement le schéma comme vous le montrez. Il existe de nombreuses options pour exécuter ensemble un serveur Web et un serveur / module Websocket.
Je vous suggère de regarder les différentes parties du global window.location et de les réunir au lieu de faire une substitution de chaîne aveugle.
Notez que certains serveurs Web (c'est-à-dire ceux basés sur Jetty) utilisent actuellement le chemin (plutôt que l'en-tête de mise à niveau) pour déterminer si une requête spécifique doit être transmise au gestionnaire WebSocket. Vous pouvez donc être limité dans la possibilité de transformer le chemin comme vous le souhaitez.
la source
"/to/ws"
? Sinon, quelle devrait être la valeur de cette pièce?Voici ma version qui ajoute le port tcp au cas où ce ne serait pas 80 ou 443:
Edit 1: Version améliorée comme par suggestion de @kanaka:
Edit 2: De nos jours, je crée le
WebSocket
ceci:la source
Utilisation de l'API Window.URL - https://developer.mozilla.org/en-US/docs/Web/API/Window/URL
Fonctionne avec http (s), ports, etc.
la source
En supposant que votre serveur WebSocket écoute sur le même port que celui à partir duquel la page est demandée, je suggérerais:
Ensuite, pour votre cas, appelez-le comme suit:
la source
facile:
la source
/^http/
au lieu de'http'
juste au cas où sehttp
trouve à l'intérieur de la barre d'URL.Sur localhost, vous devez considérer le chemin de contexte.
la source
En texte dactylographié:
Usage:
la source