Ibm mobilefirst IBM Worklight 5.0.6-/init vs WL.Client.connect()调用

Ibm mobilefirst IBM Worklight 5.0.6-/init vs WL.Client.connect()调用,ibm-mobilefirst,worklight-server,worklight-runtime,Ibm Mobilefirst,Worklight Server,Worklight Runtime,我有一个简单的测试应用程序,其中我决定如何通过WL.Client.connect()处理服务器连接 在应用程序启动期间,不会发生身份验证过程。只需使用initOptions.js(connectOnStartup:false)进行标准初始化,然后调用wlCommonInit(),我在其中使用正确的成功/失败处理程序调用服务器(WL.Client.connect()) 当我使用移动浏览器模拟器(例如:Android环境)测试应用程序时,我从浏览器控制台获得以下堆栈跟踪: WL.Client.ini

我有一个简单的测试应用程序,其中我决定如何通过
WL.Client.connect()
处理服务器连接

在应用程序启动期间,不会发生身份验证过程。只需使用initOptions.js(
connectOnStartup:false
)进行标准初始化,然后调用
wlCommonInit()
,我在其中使用正确的成功/失败处理程序调用服务器(
WL.Client.connect()

当我使用移动浏览器模拟器(例如:Android环境)测试应用程序时,我从浏览器控制台获得以下堆栈跟踪:

WL.Client.init() passed! wlgap.android.js:1538
wlclient init started wlgap.android.js:1538
before: app init onSuccess wlgap.android.js:1538
Request [/apps/services/api/UnisTestAdapters/android/init] wlgap.android.js:1538
inside wlCommonInit wlgap.android.js:1538
after: app init onSuccess wlgap.android.js:1538
wlclient init success wlgap.android.js:1538
wlclient init started wlgap.android.js:1538
before: app init onSuccess wlgap.android.js:1538
Cannot invoke WL.Client.connect while it is already executing. wlgap.android.js:1544
inside wlCommonInit wlgap.android.js:1538
Cannot invoke WL.Client.connect while it is already executing. wlgap.android.js:1544
inside wlCommonInit wlgap.android.js:1538
after: app init onSuccess wlgap.android.js:1538
wlclient init success wlgap.android.js:1538
Failed to load resource: the server responded with a status of 401 (Unauthorized) http://<myhost>/apps/services/api/UnisTestAdapters/android/init
Request [/apps/services/api/UnisTestAdapters/android/init] wlgap.android.js:1538
response [/apps/services/api/UnisTestAdapters/android/init] success: /*-secure-
{"userPrefs":{},"WL-Authentication-Success":{"wl_remoteDisableRealm":{"userId":"null","attributes":{},"isUserAuthenticated":1,"displayName":"null"},"wl_antiXSRFRealm":{"userId":"2lpeuqgs32jqt15bkbu0hg19j","attributes":{},"isUserAuthenticated":1,"displayName":"2lpeuqgs32jqt15bkbu0hg19j"},"wl_deviceNoProvisioningRealm":{"userId":"previewDummyId","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@15c4c586"},"isUserAuthenticated":1,"displayName":"previewDummyId"},"wl_anonymousUserRealm":{"userId":"a940a5a8-7506-4052-9445-87b8aeeb23f9","attributes":{},"isUserAuthenticated":1,"displayName":"a940a5a8-7506-4052-9445-87b8aeeb23f9"}},"notificationSubscriptionState":{},"gadgetProps":{"ENVIRONMENT":"android"},"userInfo":{"wl_authenticityRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"UnisaluteAuthRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"SampleAppRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_remoteDisableRealm":{"userId":"null","attributes":{},"isUserAuthenticated":1,"displayName":"null"},"wl_antiXSRFRealm":{"userId":"2lpeuqgs32jqt15bkbu0hg19j","attributes":{},"isUserAuthenticated":1,"displayName":"2lpeuqgs32jqt15bkbu0hg19j"},"WorklightConsole":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_deviceAutoProvisioningRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_deviceNoProvisioningRealm":{"userId":"previewDummyId","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@15c4c586"},"isUserAuthenticated":1,"displayName":"previewDummyId"},"myserver":{"userId":"a940a5a8-7506-4052-9445-87b8aeeb23f9","attributes":{},"isUserAuthenticated":1,"displayName":"a940a5a8-7506-4052-9445-87b8aeeb23f9"},"wl_anonymousUserRealm":{"userId":"a940a5a8-7506-4052-9445-87b8aeeb23f9","attributes":{},"isUserAuthenticated":1,"displayName":"a940a5a8-7506-4052-9445-87b8aeeb23f9"}}}*/ wlgap.android.js:1538
wlclient connect success 
Request [/apps/services/api/UnisTestAdapters/android/heartbeat] wlgap.android.js:1538
response [/apps/services/api/UnisTestAdapters/android/heartbeat] success:  wlgap.android.js:1538
Request [/apps/services/api/UnisTestAdapters/android/heartbeat] wlgap.android.js:1538
response [/apps/services/api/UnisTestAdapters/android/heartbeat] success:  wlgap.android.js:1538
Request [/apps/services/api/UnisTestAdapters/android/heartbeat] wlgap.android.js:1538
response [/apps/services/api/UnisTestAdapters/android/heartbeat] success:  wlgap.android.js:1538
Request [/apps/services/api/UnisTestAdapters/android/heartbeat] wlgap.android.js:1538
response [/apps/services/api/UnisTestAdapters/android/heartbeat] success:  wlgap.android.js:1538 
请看这两个问题(好吧,他们的答案),以获得一些可能有用的解释


至于Heartbeat,是的,它在默认情况下是启用的,并且具有。

您的wlCommonInit上的代码是什么?Idan,我已经看到了这些帖子,但他们没有解释我为什么会出现两次错误“无法在执行时调用WL.Client.connect”,就好像我发出了几个WL.Client.connect()调用一样。但是在wlCommonInit()中,我只调用了一次WL.Client.connect(),所以我想知道该调用是否与/init调用冲突,可能仍然在运行中。如果是这样的话,我怎样才能避免呢?wlCommonInit()不是应该在WL.Client.init()初始化WL框架之后调用吗?我假设/init请求与WL.Client.init()调用相关,不是吗?谢谢。伊丹,我也有类似的问题。调用InvokeProcedure时,我发现以下
加载资源失败:在此服务器上找不到请求的URL。
@Quake,如果使用connectOnStartup:true,则会导致额外的连接。
function wlCommonInit(){
    // Common initialization code goes here
    busyind = new WL.BusyIndicator("content");
    $('#SubscribeButton').bind('click', subscribeButtonClicked);
    $('#UnsubscribeButton').bind('click', unsubscribeButtonClicked);    

    WL.Client.connect({ onSuccess: connected, 
                onFailure: notconnected,
                timeout: 1000
    });

    WL.Logger.debug("inside wlCommonInit");
}

function connected(response){
    alert("connected");
}

function notconnected(response){
    alert("not connected");
}