如何更改连接 API 的超时值?

How to change timeout value of the connect API?

我们的 Android 和 iPhone 应用程序大量出现以下错误,尤其是 UNRESPONSIVE_HOST 和 REQUEST_TIMEOUT。这似乎发生在 WL.Client.connect() 初始化例程中。

用户的 Internet 或 Wifi 连接可能不稳定。这是可能的。但似乎还有更系统的东西。什么通常会导致无响应的主机错误?为什么超时与无响应的主机不同?默认超时是多少? 10秒?在抛出这些错误之前?有没有办法改变超时。

REQUEST_TIMEOUT / UNRESPONSIVE_HOST …

Response Error : The request timed out.
FATAL ERROR at Worklight Initialization: the service is currently not available. status code from server:-1
[https://www.app.com:443/app/apps/services/api/app-name/iphone/init] Host is not responsive.

根据文档,所有源自 JavaScript 框架的请求的默认全局超时值为 30 秒。它由 common\js\initOptions.js 中的 timeout 选项控制(如果您没有看到它,请添加它并提供不同的值):http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.html%23init

除了更改全局超时值之外,您还可以通过将 timeout 参数添加到您正在使用的选项对象来专门更改 WL.Client.connect 的超时值:http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.html%23init

WL.Client.connect({
    timeout: value-in-seconds,
    onSuccess: mySuccessCallback,
    onFailure: myFailureCallback
});

至于 "Why" - 谁知道呢。您可以使用一些网络嗅探器来查看网络中发生的情况,以查看潜在的瓶颈在哪里,以及将网络嗅探器的时间戳与服务器日志中的时间戳进行比较,同时 运行 处于跟踪模式以进一步调查。