Mejores prácticas de llamadas http simultáneas y conexión de socket

Tengo una aplicación en la que hay un hilo dedicado que se conecta con el servidor de juegos con nio socket para intercambiar datos en tiempo real con el servidor. Al mismo tiempo, podría haber un par de subprocesos en ejecución simultáneos, cada uno de los cuales realiza una llamada http (usando apache HttpClient) para recuperar una imagen pequeña de otro servidor.

Ahora el problema es que, cuando se invocan las llamadas http de recuperación de imágenes, la conexión del socket obviamente se retrasa. Intenté agregar el siguiente código para aumentar la prioridad del subproceso del zócalo

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_MORE_FAVORABLE);

pero no ayudó. Todavía vi el retraso de la comunicación del socket.

¿Tienes alguna sugerencia sobre este tema?

¡Gracias!

preguntado el 30 de junio de 12 a las 18:06

¿Qué le parece introducir una pantalla de carga/búfer cuando tiene que descargar mapas de bits? O cambie su código para que su aplicación descargue mapas de bits con mucha anticipación, también teniendo en cuenta las probabilidades, como estar en el mismo nivel/área/proximidad con otras entidades o jugadores y cargar y almacenar en caché todo con anticipación, incluso cuando no se usará. por su aplicación. De esa manera tienes estos retrasos bajo control. -

Desafortunadamente, los datos en tiempo real del socket determinan qué imágenes descargar, por lo que no podemos recuperar las imágenes por adelantado. -

Para seguir ese enfoque, también necesitará realizar cambios en el software del servidor, por supuesto. Cuando está activando múltiples descargas de archivos grandes, no creo que pueda esperar un rendimiento casi en tiempo real de su comunicación de socket, incluso cuando está tratando de cambiar la prioridad (lo que no parece funcionar de todos modos). Es el protocolo actual de la comunicación cliente-servidor el que debe corregirse. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.