Javascript 如何为websocket连接指定主机?
我有一个页面,可以打开websocket连接回服务器。websocket服务器在开发时为ws://127.0.0.1:5000/ws,部署到生产时为ws://www.mymachine.com/ws。有没有简写的方法,这样我就不必在部署时手动将此URI从127.0.0.1:5000重新写入Javascript 如何为websocket连接指定主机?,javascript,websocket,tornado,Javascript,Websocket,Tornado,我有一个页面,可以打开websocket连接回服务器。websocket服务器在开发时为ws://127.0.0.1:5000/ws,部署到生产时为ws://www.mymachine.com/ws。有没有简写的方法,这样我就不必在部署时手动将此URI从127.0.0.1:5000重新写入到www.mymachine.com 我试过ws://ws,但不起作用。我试图获得与普通url相同的行为,您可以在其中使用/index,它将转到127.0.0.1:5000/index或www.mymachin
到www.mymachine.com
我试过ws://ws
,但不起作用。我试图获得与普通url相同的行为,您可以在其中使用/index
,它将转到127.0.0.1:5000/index或www.mymachine.com/index,具体取决于它运行的位置。除了(初始化)脚本顶部的一个简单变量外,您还可以查看引用:
This specification defines a scheme with URLs of the sort:
blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA.
这些URL存储在URL存储中,浏览器甚至应该有自己的迷你HTTP服务器,这样就可以在css、img src甚至XMLHttpRequest中使用这些URL
然后,初始化脚本将使用if/else构建url对象并将其放入存储。
还有更多的信息在里面。(此外,在使用web套接字时,向后兼容性不是您的问题.)
希望这能让你产生一些想法。我也有类似的问题。
我使用以下方法解决了问题:
var uri= window.location.host + window.location.pathname + 'ws'
if (window.location.protocol === 'http:') {
mysocket.connect('ws://' + uri);
} else {
mysocket.connect('wss://' +uri);
}