Javascript 如何为websocket连接指定主机?

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

我有一个页面,可以打开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.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);
  }