2014-05-21 60 views
1

我有一个打开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但它不起作用。我试图获得与正常网址相同的行为,您可以使用/index,它将根据它在哪里运行,转到127.0.0.1:5000/index或www.mymachine.com/index。如何为websocket连接指定主机?

回答

2

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

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

除了在(initialization-)脚本的顶部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服务器,所以人们可以使用这些URL在CSS,IMG SRC甚至XMLHttpRequest。

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

希望这可以激发您的想法。

相关问题