从 Worklight Client 代码中检测 Worklight Server 主机名/IP 地址

Posted

技术标签:

【中文标题】从 Worklight Client 代码中检测 Worklight Server 主机名/IP 地址【英文标题】:Detect Worklight Server Hostname/IP Address from Worklight Client code 【发布时间】:2013-05-27 19:14:05 【问题描述】:

出于各种原因,我需要通过编程 javascript 从客户端代码访问 Worklight 服务器的主机名或 IP 地址。

例如: - 我想从与 Worklight 服务器相同的主机中提取脚本和资源 - 我在 Worklight 主机上有一个带外服务,我想连接到它

@IdanAdar 说该地址不存在。我搜索了 WL 对象,也找不到它。见Can we get the app version and IP address info using worklight api?。

请注意,作为原生应用运行时,document.location.hostname 为 null。

【问题讨论】:

【参考方案1】:

我当前的解决方法是将 IP 地址/主机名设置为我的*** html 文件中的全局变量。这并不理想,因为它导致我的源代码必须因实现而异。

Worklight 已经在 application-descriptor.xml 中外部化了这个值

服务器端 API 在 WL.Server.configuration["local.IPAddress"] 中公开了这一点。我认为客户端也应该公开类似的 API。

【讨论】:

【参考方案2】:

虽然不是最好的选择,但您可以开发一个返回 WL.Server.configuration["local.IPAddress"] 的适配器(如果可用),也可以通过 http 请求访问 IP。

Is it possible to access to the HTTPRequest in the worklight adapter implementation?

我不确定你是否可以在 wlCommonInit 之前调用适配器,如果你不能并且你需要在公共 init 之前的 ip,那么这种方法是没用的。

【讨论】:

以上是关于从 Worklight Client 代码中检测 Worklight Server 主机名/IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight - 如何启动另一个应用程序?

IBM Worklight:WL.Client.getUserName 无法在身份验证后立即检索 userIdentity

IBM Worklight - 无法从客户端应用程序调用适配器过程

Worklight 中用于加密(客户端)和解密(服务器/适配器)的 API

IBM Worklight 6.0.0.1 - 适配器中的超时设置

在 Worklight 适配器上获取客户端 IP 地址