iOS:例如Alamofire的节流带宽

swa*_*ner 6 swift alamofire

是否可以在例如Alamofire中限制上传操作的带宽?

我想在用户使用应用程序的同时在后台上传数据,然后上传和下载更重要的内容.
因此,我想在特定情况下限制后台带宽.

我到目前为止找到的唯一可能是使用ASIHTTPRequest,它有一个maxBandwidthPerSecond属性,但是这个库太旧了,我想用更新的东西.

Dav*_*eek 0

Chilkat API提供了一种CKOSocket()限制使用带宽的可能性,如下所示:

//  To use bandwidth throttling, the connection should be made using the socket API.
//  This provides numerous properties to customize the connection, such as
//  BandwidthThrottleDown, BandwidthThrottleUp, ClientIpAddress, ClintPort, Http Proxy,
//  KeepAlive, PreferIpv6, RequireSslCertVerify, SoRcvBuf, SoSndBuf, SoReuseAddr,
//  SOCKS proxy, TcpNoSDelay, TlsPinSet, TlsCipherSuite, SslAllowedCiphers, etc.

let socket = CkoSocket()
var maxWaitMs: Int = 5000
var success: Bool = socket.Connect("content.dropboxapi.com", port: 443, ssl: true, maxWaitMs: maxWaitMs)
if success != true {
    print("\(socket.LastErrorText)")
    print("Connect Fail Reason: \(socket.ConnectFailReason.integerValue)")
    return
}

//  Set the upload bandwidth throttle rate to 50000 bytes per second.
socket.BandwidthThrottleUp = 50000 
Run Code Online (Sandbox Code Playgroud)

检查此以获取更多文档。

文档中的示例演示了如何通过 REST API 使用上传带宽限制。它将使用文件流将文件上传到 Drobox,但可用于传输的带宽受到限制。