0

工作灯 5.0.6.1

我们的客户对使用英特尔的 PCI 设备 ( http://info.intel.com/rs/intel/images/Intel_Expressway_Tokenization_Broker.pdf ) 提出了具体要求,以避免对应用程序和服务器进行 PCI 审核。

因此,与支付数据有关的适配器调用将需要通过此硬件设备,然后才能访问 worklight 服务器。所有其他适配器调用应直接转到 Worklight 服务器(以免设备过载)。想法是在后台拥有两个不同的 URL,但使用相同的 worklight 服务器。假定通过设备的调用对于 Worklight 服务器是透明的,因此不应影响 Worklight 功能。

我的问题是:

  • 一个 Worklight 最佳实践,为同一个 Worklight 服务器提供两个不同的 URL,并从客户端交替这些 URL 以进行适配器调用(仅限;不是直接更新或其他任何东西,因为我们假设这是本机执行的)?

  • 是否可以通过客户端代码中的 JavaScript 代码动态覆盖用于适配器调用的 Worklight 服务器 URL?例如,在 WL.Client AJAX 适配器调用之前覆盖从某处获取/返回工作灯 URL 的特定 JS 函数?

我们还在研究让负载均衡器根据正在调用的 AdapterName 的正则表达式切换路由。但现在还不确定这是否可能以及对性能的影响是什么。

4

3 回答 3

3

尽管可能,但这不是 WL 支持的。如果出现问题,您将无法从支持人员那里获得帮助(并且会出现问题)。您必须记住,所有服务器 cookie(例如会话 ID)都是每个域的。因此,当您动态更改服务器 URL 时,您将丢失它们。因此,WL 服务器会将您的请求视为新会话,与旧(现有)会话无关。这不是 WL 特有的,这就是 HTTP 的工作方式。

WL 将服务器 URL 保存在两个全局属性中 - WL.AppProp.WORKLIGHT_ROOT_URL 和 WL.AppProp.APP_SERVICES_URL。您可以覆盖它们,从而更改服务器 URL。

第一个用于由开发人员触发的所有请求(初始化、连接、登录等)。第二个用于杂项内部功能(例如加密缓存)。

再一次 - 这是一个黑客,绝对不是一个解决方案。如果有的话,请谨慎使用:)

于 2013-08-27T07:51:40.777 回答
0

怎么样,如果我们定义自己的函数来调用一些静态属性并更新它们?

函数 changeServerUrl(serverURL) {

WL.StaticAppProps.APP_SERVICES_URL = serverURL + WL.StaticAppProps.POSTFIX_APP_SERVICES_URL; WL.StaticAppProps.WORKLIGHT_ROOT_URL = serverURL + WL.StaticAppProps.POSTFIX_WORKLIGHT_ROOT_URL; WL.StaticAppProps.WORKLIGHT_BASE_URL = serverURL; }

并称之为

chnageServerUrl("http://"+yourServerIP+":"+PORT);

于 2015-01-20T11:14:47.523 回答
-2

如果您深入研究 worklight.js 文件,则有一个函数“setWLUrl(url)”可用于更改 serevr URL。像这样称呼它并完成

setWLUrl("http://"+yourServerIP+":PORT");

它是一种 hack,但我认为它不应该有任何问题,因为它是 api 中的一个函数。

祝你好运

于 2015-01-20T09:46:42.733 回答