2012-06-01 26 views
8

Estoy incursionando en un problema en una aplicación OS X que crea conexiones múltiples y persistentes al mismo host usando NSURLConnection. Creo una conexión separada para diferentes salas, y permanece conectada todo el tiempo que la sala está abierta para consumir una API de transmisión. Al abrir muchas habitaciones, deja de funcionar correctamente.¿Número máximo de NSURLConnections concurrentes en el mismo host?

Creé una aplicación de muestra separada que crea 10 conexiones, y parece que solo permite que 6 conexiones funcionen, y las otras se ponen en cola. ¿Alguien sabe si hay una manera de anular este límite? No puedo encontrarlo documentado en ningún lado. La única solución que he encontrado es que parece ser por nombre de host, por lo que probar con "localhost" y "127.0.0.1" permite 6 conexiones por host. Cargué un proyecto de muestra con el cliente y el servidor aquí - http://cl.ly/1x3K0D1F072V3U2T0C0I.

+0

ios o osx platform? –

+0

Lo siento, debería haber mencionado eso, esto está en OS X. Pregunta actualizada. –

+0

@Zach Waugh Estoy revisando tu código :) ¿Estás seguro de que no tiene nada que ver con tu server.js? (Node) ejecuté tu server.js pero también recibo un máximo de 6 conexiones. – self

Respuesta

5

Archivé un radar para algo que parece ser el mismo problema pero en iOS. Descubrí que no puedes tener más de 5 conexiones abiertas a la vez. Las conexiones no tienen que estar apuntando al mismo dominio. Cualquier cosa después de eso estaría en cola. Entonces, si tiene 5 conexiones abiertas a un punto extremo extremadamente lento, ninguna otra conexión se ejecutará.

Radar: http://openradar.appspot.com/radar?id=2542401

respuesta de Apple:

Este es el efecto de nuestra caché de conexiones NSURLConnection. Es esperado. Esperamos abordar este tipo de configuración con la nueva API.

pregunté si me podían dar más información y me dijeron (qué varía qué el tipo de conexión que afecta??):

Desafortunadamente, no podemos dar detalles sobre la conexión limitar el comportamiento.

Los agentes de usuario en general (Chrome, Firefox, Safari) usan seis conexiones TCP simultáneas por nombre de host, con posibles excepciones.

Cuestiones relacionadas