2016-08-26 8 views
1

Je souhaite réduire le débit de données (Limitation de bande passante) pour mon application mac os x.
J'ai déjà essayé de dormir dans la méthode - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data mais cela ne m'aide pas.
Je suis également vérifier cette question
Limit NSURLConnection data rate? (Bandwidth throttling)
mais cela ne m'aide pas.
Existe-t-il un autre moyen de réaliser la limitation de la bande passante dans l'objectif cLimitation de bande passante dans l'objectif c (Limite de débit de données NSURLConnection)

+0

J'ai le même problème dans mon application, s'il vous plaît partager un an pour cette question –

Répondre

1

Le problème est que le travail se déroule sur un thread différent.

Si vous avez vraiment besoin de faire de la limitation de la bande passante, il n'y a pratiquement qu'une façon de le faire, c'est de gérer vous-même la connexion socket. Cela signifie essentiellement écrire vos propres classes de requêtes HTTP ou utiliser libcurl. Et sachez que si vous allez sur ce chemin, si vous avez besoin de le faire sur iOS, vous devrez également faire au moins occasionnellement de courtes requêtes de haut niveau avec NSURLConnection ou NSURLSession pour garder la radio cellulaire éveillée. Vous pouvez également effectuer une limitation en intégrant une bibliothèque proxy HTTP dans votre application, en utilisant NSURLSession au lieu de NSURLConnection, en le configurant pour envoyer toutes les demandes via ce proxy, puis en modifiant le code proxy pour limiter la vitesse à laquelle il lit les données de la socket.

Aucune de ces approches sont pour les faibles de cœur.

Si vous ne tenez pas compte de l'étranglement de l'application elle-même, vous disposez d'un certain nombre d'outils de mise en forme de bande passante (par exemple, le conditionneur de liens réseau).

+0

Celui-ci m'a aidé –