如何为websocket连接指定主机?

时间:2014-05-21 18:38:33

标签: javascript websocket tornado

我有一个页面打开webocket连接回服务器。 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,它将转到127.0.0.1:5000/index或www.mymachine.com/index,具体取决于它在哪里运行

2 个答案:

答案 0 :(得分:2)

我有类似的问题。 我解决了使用:

 var uri= window.location.host + window.location.pathname + 'ws'
  if (window.location.protocol === 'http:') {
    mysocket.connect('ws://' + uri);
  } else {
    mysocket.connect('wss://' +uri);
  }

答案 1 :(得分:0)

除了(initial-)脚本顶部的1个简单变量外,您还可以查看File API - A URL for Blob and File引用:

This specification defines a scheme with URLs of the sort:
blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA.

这些存储在URL store中,浏览器甚至应该有自己的迷你HTTP服务器,因此可以在css,img src甚至XMLHttpRequest中使用这些URL。

然后,您的初始化脚本将使用if / else构建您的url-object并将其放入商店 更多信息位于this answer。 (此外,使用网络套接字时,向后兼容性不是问题。)

希望这会引起你的想法。