Si su servidor web es compatible con WebSockets (o un módulo controlador de WebSocket), entonces puede usar el mismo host y puerto y simplemente cambiar el esquema como se muestra. Hay muchas opciones para ejecutar un servidor web y un servidor / módulo Websocket juntos.
Le sugiero que mire las piezas individuales de window.location global y las vuelva a unir en lugar de realizar una sustitución ciega de cadenas.
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";
Tenga en cuenta que algunos servidores web (es decir, los basados en Jetty) utilizan actualmente la ruta (en lugar del encabezado de actualización) para determinar si una solicitud específica debe transmitirse al controlador WebSocket. Por lo tanto, es posible que tenga limitaciones en cuanto a si puede transformar el camino de la manera que desee.
path/to/ws
? ¿A dónde lleva esto exactamente? Gracias