如何为websocket连接指定主机?



我有一个打开websocket连接回服务器的页面。websocket服务器在开发时为ws://127.0.0.1:5000/ws,部署到生产环境时为ws://www.mymachine.com/ws。是否有一个简短的手,所以我不需要重新编写这个URI手动from 127.0.0.1:5000www.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套接字…)

希望这篇文章能让你产生一些想法。

相关内容

  • 没有找到相关文章

最新更新