繁体   English   中英

如何为Websocket连接指定主机?

[英]How do I specify the host for a websocket connection?

我有一个页面可以打开与服务器的websocket连接。 Websocket服务器在开发中时为ws://127.0.0.1:5000 / ws,在部署到生产环境中时为ws://www.mymachine.com/ws。 这是否有捷径,所以部署时我www.mymachine.com from 127.0.0.1:5000www.mymachine.com手动重写此URI?

我已经尝试过ws://ws但没有用。 我正在尝试获得与普通网址相同的行为,您可以在其中使用/index ,根据其运行位置,它将转到127.0.0.1:5000/index或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);
  }

除了(初始化)脚本顶部的1个简单变量之外,您还可以查看File API-Blob和File引用的URL

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对象并将其放入存储中。
此答案中有更多信息。 (此外,使用网络套接字时,向后兼容性不是您的问题。)

希望这能使您想到一个主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM