Ibm mobilefirst IBM Worklight-连接/重新连接:WL.Client.connect vs.connectOnStartup vs.WL.Client.invokeProcess

Ibm mobilefirst IBM Worklight-连接/重新连接:WL.Client.connect vs.connectOnStartup vs.WL.Client.invokeProcess,ibm-mobilefirst,worklight-server,worklight-runtime,Ibm Mobilefirst,Worklight Server,Worklight Runtime,在我们的项目中,我们试图找出连接到服务器的最佳流程,尤其是在处理离线/在线场景等时 现在,对我们来说,连接WL服务器的三个选项似乎都是相似的。无论使用什么选项,我们都可以完美地调用适配器过程,并接收控制台中设置的通知消息。 我们不确定直接更新-这还不能正常工作 这三种连接WL服务器的方式之间是否有任何重要区别,或者在这三种情况下执行的连接过程基本相同 连接前WL.Client.init()如何?在使用WL.Client.connect手动连接之前,我们是否可以在代码中再次调用它(除了标准的win

在我们的项目中,我们试图找出连接到服务器的最佳流程,尤其是在处理离线/在线场景等时

现在,对我们来说,连接WL服务器的三个选项似乎都是相似的。无论使用什么选项,我们都可以完美地调用适配器过程,并接收控制台中设置的通知消息。 我们不确定直接更新-这还不能正常工作

这三种连接WL服务器的方式之间是否有任何重要区别,或者在这三种情况下执行的连接过程基本相同

连接前WL.Client.init()如何?在使用WL.Client.connect手动连接之前,我们是否可以在代码中再次调用它(除了标准的window load EventListener),或者init()应该只调用一次

与之绑定的还有离线和重新连接。 据我在教程中读到的,WL客户端框架正在管理连接状态。这是否意味着当WL客户端通过这三种方式中的任何一种连接到服务器并失去其WLAN/3G/4G连接(或由于internet连接阻止程序等原因而无法访问WL服务器)时,当与WL服务器的连接再次可用时,它会自动重新连接(定期尝试重新连接,直到成功)

编辑

我在考虑提供更多低级信息的事件或线程(不是WORKLIGHT\u已连接)-基本上是当设备失去/获得WIFI/3G/4G连接和/或互联网连接时会触发的事件。还是只有使用WL.Device.getNetworkInfo()进行轮询才可用

Cordova事件的使用是否类似于:

document.addEventListener("offline", yourCallbackFunction, false);

提供与之相近的功能?

尽管这三种方法有一些相似之处,但它们之间的差异非常重要

WL.Client.init()
初始化客户端WL框架

WL.Client.connect()
触发对WL服务器的连接请求

initOptions.connectOnStartup
定义在WL.Client.init()期间是否自动调用
WL.Client.connect()

通常-即使您在不调用
WL.Client.connect()的情况下调用
WL.Client.invokeProcedure()
,大多数功能(例如适配器、远程禁用)也会正常工作。但有几件事无法发挥作用:

  • 如果不调用
    WL.Client.connect()
  • 直接更新在
    WL.Client.connect()期间触发
  • WL.Client.connect()
    将从服务器获取与安全相关的信息,例如域的名称、用户是否在这些域中进行了身份验证等。因此,像
    WL.Client.getUserInfo
    .isAuthenticated()
    .getUserName()
    等所有API都将不起作用

  • 强烈建议使用
    WL.Client.connect()
    (或
    initOptions.connectOnStartup=true
    )启动会话

    谢谢你的澄清!您可能对脱机/无internet连接的处理有一些了解吗?WL是否有一些内置的管理功能,或者我们是否需要通过WL.Client.connect()调用等处理所有情况(例如,设备失去WIFI/3G/4G,设备有WIFI/3G/4G但没有互联网连接,等等)?这可能?非常感谢。对不起,我不够清楚。当然,我编辑了这个问题以包含更多细节。由于您没有提供关于任何自动性的附加信息,我假设WL客户机框架没有活动线程或类似的运行,无法自行重新连接或管理联机/脱机状态?它全部由开发人员管理。这是正确的。WL不会尝试自动重新连接。如果您正在创建混合应用程序(ios/android),您可以使用cordova事件来检测在线/离线事件-