Si votre serveur Web prend en charge les WebSockets (ou un module de gestion des WebSockets), vous pouvez utiliser le même hôte et le même port et modifier simplement le schéma comme vous le montrez. Il existe de nombreuses options pour faire fonctionner ensemble un serveur Web et un serveur/module Websocket.
Je vous suggère d'examiner les différents éléments de window.location global et de les réunir au lieu de procéder à une substitution aveugle de chaîne.
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 (par exemple 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. Il se peut donc que vous soyez limité dans la possibilité de transformer le chemin d'accès de la manière que vous souhaitez.