javascript - 动态获取Web套接字URL

标签 javascript scala websocket playframework-2.0

我有一个使用 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/

相关文章:

javascript - "Object is undefined"错误,尝试在 three.js 中旋转对象时

javascript - CORS cookie 适用于 get 请求,但不适用于 Angular2 中的 post

java - 如何使用 WebSocket 发送定期消息?

php - websocket.ERROR:发生连接错误警告:SessionHandler::read(): session 未激活

php - 错误: INVALID_STATE_ERR: DOM Exception 11 with php websockets

javascript - 如何从一个组件访问另一个组件的状态

javascript - IE8 中 Object.toString 的问题,backbone.js

scala - 在 Chisel 中使用 Vec[Mem] 会很好

scala - 如何使用条件为每个组生成新的列值

scala - 如何跳过空格但将其用作解析器组合器中的标记分隔符