Я пытаюсь настроить сокет в режиме VoIP на iPhone, чтобы мое приложение могло проснуться, когда произойдет событие.У меня есть простой сервер, который будет писать в сокет, если и только если приложение должно проснуться и поговорить с основным веб-сервисом о чем-то.Вызов CFReadStreamSetProperty () для потока, подключенного к сокету, всегда возвращает ноль, что, если я не ошибаюсь, - FALSE, то есть поток не распознал и / или не принял значение свойства.В предыдущем вопросе я читал, что это средство недоступно на симуляторе, поэтому я попробовал его на реальном телефоне с тем же результатом.
Как я могу выяснить, почему сбой вызова?
Код ниже:
- (id) init {
NSLog(@"NotificationClient init, host = %@", [self getNotificationHostName]);
CFHostRef notificationHost = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)[self getNotificationHostName]);
CFStreamCreatePairWithSocketToCFHost(kCFAllocatorDefault, notificationHost, [self getNotificationPort], &_fromServer, &_toServer);
BOOL status;
status = CFReadStreamOpen(_fromServer);
status = CFReadStreamSetProperty(_fromServer, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
NSLog(@"status from setting VoIP mode on socket is %d", status);
status = CFWriteStreamOpen(_toServer);
[self sendMessage:@"STRT" withArgument:@"iPhone"];
[self startReceivingMessages];
return self;
}