在我们的项目中,我们试图弄清楚连接到服务器的最佳流程是什么 - 特别是在处理离线/在线场景等时。
现在,对于我们来说,连接到 WL 服务器的所有三个选项似乎都是相似的。无论我们使用什么选项,我们都可以完美地调用我们的适配器过程,并且我们会收到在控制台中设置的通知消息。
我们不确定直接更新 - 这还不能正常工作。
这三种连接 WL 服务器的方式之间是否存在重要差异,或者在所有三种情况下执行的连接过程基本上相同?
连接之前的 WL.Client.init() 怎么样?在我们手动使用 WL.Client.connect 进行连接之前,我们可以在代码中再次调用它(除了标准窗口加载 EventListener 之外)吗?还是 init() 应该是只调用一次?
与此相关的还有离线和重新连接。
据我在教程中读到的内容,WL 客户端框架正在管理连接状态。这是否意味着当 WL 客户端通过这三种方式中的任何一种连接到服务器并失去其 WLAN/3G/4G 连接(或者由于互联网连接阻止程序等原因而无法访问 WL 服务器)时,它会自动重新连接(当与 WL 服务器的连接再次可用时?
EDIT
我正在考虑提供更多低级信息的事件或线程(不是 WORKLIGHT_IS_CONNECTED) - 基本上是当设备丢失/获取 WIFI/3G/4G 连接和/或互联网连接时会触发的事件。或者是否只能使用 WL.Device.getNetworkInfo() 进行轮询?
Cordova Event 的使用会像:
document.addEventListener("offline", yourCallbackFunction, false);
提供接近的功能?
尽管这三种方式确实有一些相似之处,但它们之间的差异非常重要。
WL.Client.init()
初始化客户端 WL 框架。
WL.Client.connect()
触发到 WL 服务器的连接请求。
initOptions.connectOnStartup
定义是否WL.Client.connect()
将在 WL.Client.init() 期间自动调用。
一般来说 - 即使您调用,大多数功能(例如适配器、远程禁用)也会起作用WL.Client.invokeProcedure()
不打电话WL.Client.connect()
。但有几件事无法发挥作用:
- 如果不致电,您将无法充分利用推送通知
WL.Client.connect()
- 期间触发直接更新
WL.Client.connect()
-
WL.Client.connect()
将从服务器获取安全相关信息,例如领域的名称,用户是否在这些领域中进行了身份验证等。因此所有 API 都像WL.Client.getUserInfo
, .isAuthenticated()
, .getUserName()
等将无法运行。
强烈建议您以WL.Client.connect()
(or initOptions.connectOnStartup=true
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)