我有一个使用 Web 套接字的 Play 2.5 应用程序。在我的 Controller 中,我将其设置为
def socket = WebSocket.accept[JsValue, JsValue] { request =>
ActorFlow.actorRef(out => TroiWebSocket.props(db, out, comm.communicator, system))
}
而且,它在我的 route 被访问为
GET /push-notifications controllers.Application.socket
目前,我的应用程序正在本地运行,我可以使用 javascript 文件中的套接字来引用
var socket = new WebSocket("ws://localhost:9000/push-notifications");
但是,我开始将我的内容从本地主机移走,并且需要一种方法来引用我的 javascript 文件中的 url。此 URL 可能会更改(并且可能会根据开发环境而有所不同)。那么,如何动态引用这个URL呢?也就是说,怎么说呢
var socket = new Websocket(URL_OF_WEBSOCKET)
我想过将其分解在我的配置文件中并尝试这样做,但我不太确定这是否可行。
任何和所有帮助将不胜感激。
最佳答案
如果您使用的是纯 JavaScript。声明一个文件 config.js 并使用一些配置数据定义一些全局对象。
<html>
<head>
<script>
var config = {
"localWSUrl" : "ws://localhost:9000/socket",
"wsUrl" : "ws://serverurl.com:443/socket"
}
</script>
<script>
console.log(config.wsUrl);
</script>
</head>
<body>
</body>
</html>
为了简单起见,我将所有内容都写在一个文件中。您可以排除配置部分并通过脚本标记的 src 属性导入文件。然后您可以在需要的地方重复使用它。
关于javascript - 动态获取Web套接字URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860508/