在 iOS 上增加 URLLoader 的超时

Posted

技术标签:

【中文标题】在 iOS 上增加 URLLoader 的超时【英文标题】:Increasing timeout for URLLoader on iOS 【发布时间】:2014-04-08 01:05:19 【问题描述】:

ios AIR 应用程序上 URLLoader 的超时值似乎小于 5 秒(我如何找出确切的值?)。如果请求超过此值,则会引发 IOErrorEvent。

如何增加超时值? IE上有answer可以设置,但是iOS AIR应用呢?

【问题讨论】:

目前正在寻找这个值可能会很棘手。 在此页面的答案中为您添加了解决方案。 【参考方案1】:

PubNub Adob​​e Air ActionScript 3 SDK

增加 iOS 上 URLLoader 的超时时间 - 您可能需要改用这个库。它使用socket timer setting 来增加超时。您将希望使用全新的 AIR (Adobe) Flash SDK 重写,它在性能和可靠性方面提供了巨大的改进。专为 Flash AS3 打造。

在 GitHub 上查看:https://github.com/stephenlb/pubnub-actionscript

下载 ZIP 文件:https://github.com/stephenlb/pubnub-actionscript/archive/master.zip

简单示例

package 
    import flash.display.Sprite;
    import com.pubnub.PubNub;

    public class Main extends Sprite 
        public function Main() 

            // Setup
            var pubnub:PubNub = new PubNub( message : function message(
                message:Object,
                channel:String,
                timetoken:String,
                age:Number
            ):void 
                trace('message:',message);     // Message Payload
                trace('channel:',channel);     // Channel Source
                trace('timetoken:',timetoken); // PubNub TimeToken
                trace('age:',age);             // Aproxmate Age
             );

            // Add Channels
            pubnub.subscribe( channels : [ 'a', 'b', 'c' ] );

        
    

导入 PubNub 客户端

import com.pubnub.PubNub;

完全初始化 PubNub 客户端

要查看完整的使用示例,请访问Main.as 文件。

var pubnub:PubNub = new PubNub(
    publish_key   : "demo",              // Publish Key
    subscribe_key : "demo",              // Subscribe Key
    drift_check   : 60000,               // Re-calculate Time Drift (ms)
    ssl           : false,               // SSL ?
    cipher_key    : 'mypass',            // AES256 Crypto Password
    message       : message,             // onMessage Receive
    idle          : idle,                // onPing Idle
    connect       : connect,             // onConnect
    reconnect     : reconnect,           // onReconnect
    disconnect    : disconnect           // onDisconnect
);

添加频道

pubnub.subscribe( channels : [ 'b', 'c' ] );

删除频道

pubnub.unsubscribe( channels : [ 'b', 'c' ] );

发布消息

pubnub.publish(
    channel  : 'b',
    message  : 'Hello!',
    response : function(r:Object):void 
        trace('publish:',JSON.stringify(r));
    
);

【讨论】:

谢谢,我受到了this line 的启发。现在超时有效。

以上是关于在 iOS 上增加 URLLoader 的超时的主要内容,如果未能解决你的问题,请参考以下文章

实现超时功能

在 AWS Linux 上增加 RestClient / Net::HTTP 中的 connect(2) 超时

如何在Linux中增加SSH连接超时的时间

如何增加特定脚本php fpm的请求超时

增加 504 超时错误

在 socket.io 上设置高关闭超时是不是安全?