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.
var loc = window.location, new_uri;
if (loc.protocol === "https:") {
new_uri = "wss:";
} else {
new_uri = "ws:";
}
new_uri += "//" + loc.host;
new_uri += loc.pathname + "/to/ws";
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.
path/to/ws
? Où cela mène-t-il exactement? Merci