我有一个打开websocket连接回服务器的页面。websocket服务器在开发时为ws://127.0.0.1:5000/ws,部署到生产环境时为ws://www.mymachine.com/ws。是否有一个简短的手,所以我不需要重新编写这个URI手动from 127.0.0.1:5000
到www.mymachine.com
时,我部署?
我试过ws://ws
,但它不起作用。我正试图获得与正常url相同的行为,您可以使用/index
,它将转到127.0.0.1:5000/索引或www.mymachine.com/index取决于它在哪里运行。
我也遇到过类似的问题。我解决了使用:
var uri= window.location.host + window.location.pathname + 'ws'
if (window.location.protocol === 'http:') {
mysocket.connect('ws://' + uri);
} else {
mysocket.connect('wss://' +uri);
}
除了(初始化)脚本顶部的一个简单变量外,您可以查看文件API - Blob和文件引用的URL:
This specification defines a scheme with URLs of the sort:
blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA.
这些都存储在URL store
和浏览器甚至应该有自己的迷你http服务器上,所以人们可以使用这些url在css, img src,甚至XMLHttpRequest。
你的初始化脚本会使用if/else来构建你的url对象,并把它放到存储库中。
更多的信息在这个答案中。(此外,向后兼容性不是你的问题时,使用web套接字…)
希望这篇文章能让你产生一些想法。