gpt4 book ai didi

websocket - 如何构造相对于页面 URI 的 WebSocket URI?

转载 作者:行者123 更新时间:2023-12-01 23:11:51 26 4
gpt4 key购买 nike

我想在浏览器端构造一个相对于页面 URI 的 WebSocket URI。说,在我的情况下转换 HTTP URIs

http://example.com:8000/path
https://example.com:8000/path


ws://example.com:8000/path/to/ws
wss://example.com:8000/path/to/ws

我目前正在做的是将前4个字母“http”替换为“ws”,并将“/to/ws”附加到它上面。有没有更好的方法呢?

最佳答案

如果您的 Web 服务器支持 WebSockets(或 WebSocket 处理程序模块),那么您可以使用相同的主机和端口,并像您展示的那样更改方案。有很多选项可以同时运行 Web 服务器和 Websocket 服务器/模块。
我建议您查看 window.location 全局的各个部分并将它们重新组合在一起,而不是进行盲字符串替换。

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";
请注意,某些 Web 服务器(即基于 Jetty 的服务器)当前使用路径(而不是升级 header )来确定是否应将特定请求传递给 WebSocket 处理程序。因此,您可能会受限于是否可以按照您想要的方式转换路径。

关于websocket - 如何构造相对于页面 URI 的 WebSocket URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com