0
我正在尝试使用NSStreams编写OS X应用程序发送推送通知。一切似乎都很好,但我发送数据到gateway.sandbox.push.apple.com时返回错误-9844。从SecureTransport.h使用NSOutputStream发送推送通知返回-9844
errSSLConnectionRefused = -9844, /* peer dropped connection before responding */
这是我如何创建和打开输出流:
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)@"gateway.sandbox.push.apple.com", 2195, &readStream, &writeStream);
self.outputPushStream = (__bridge_transfer NSOutputStream *)writeStream;
[self.outputPushStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
self.outputPushStream.delegate = self;
[self.outputPushStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[self.outputPushStream open];
而且在后委托NSStream接收NSStreamEventOpenCompleted事件我发送数据:
const uint8_t *data = pushData.bytes;
[self.outputPushStream write:data maxLength:pushData.length];
我猜测这可能是证书的一些问题。我有钥匙链中的推送通知的开发证书和密钥。我对SSL或NSStream没有任何经验,所以我不知道接下来要看的地方。