Вы можете прослушивать сообщения сокетов, сервер может отправлять простые структуры с URL-адресами данных, командами клиентам, и после этого они могут обновлять данные, например:
#define MSG_DOWNLOAD 1
typedef struct{
uint8_t cmd;
uint8_t size;
} MSGHEADER
typdef struct{
MSGHEADER header;
char url[255];
} MSGDOWNLOAD;
и в сокете, если вы получите заголовок с cmd = 1, вы можете отправить NSURLconnetion с URL на ваш сервер, загрузить некоторые данные и синхронизировать их.
- (void)recivedDataFromBuffer:(NSData *)data
{
MSGHEADER *pMsgHdr;
pMsgHdr = (MSGHEADER*)[data bytes];
int headerCMD = pMsgHdr->cmd;
if (headerCMD == MSG_DOWNLOAD)
{
MSGDOWNLOAD download = *(MSGDOWNLOAD *)pMsgHdr;
download.header = *pMsgHdr;
// do sync stuff send url request etc.
}