Mejores prácticas para mantener un socket persistente abierto a un server para la aplicación IOS

Mi aplicación requiere una connection abierta con un server para actualizaciones en time real. Necesito poder navegar por varias vistas, durante las cuales puedo enviar y recibir datos de forma asíncrona. El objective es que la aplicación actualice automáticamente los datos en time real.

Lo que me gustaría hacer es tener una class de gestor de socket separada henetworkingada de NSObject que tenga las funciones de delegado de CocoaAsyncSocket más algunas funciones de ayudante, y luego cuando las cosas sucedan con el zócalo persistente, que se maneje dentro de la class y envíe notifications que tienen diferentes efectos según la vista en la que se encuentre actualmente.

¿Cuál es la forma preferida de hacer esto? Configurar un protocolo para este administrador de socket y hacer que cada vista de interfaz de usuario sea un delegado *? ¿O sería mejor que el administrador de socket se siente en un hilo de background y envíe notifications? ¿Hay una opción preferida con respecto a la duración de la batería?

* Más o less como http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server