Ios 如何使用NSStream和APN证书发送推送通知 我知道有一些工具可以用来发送推送通知,这些通知是用PHP或C++或其他东西来实现的。我正在尝试使用NSStream开发自己的应用程序。我尝试了以下代码 CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)[website host], 80, &readStream, &writeStream); NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream; NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream; [inputStream setDelegate:self]; [outputStream setDelegate:self]; [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream open]; [outputStream open];

Ios 如何使用NSStream和APN证书发送推送通知 我知道有一些工具可以用来发送推送通知,这些通知是用PHP或C++或其他东西来实现的。我正在尝试使用NSStream开发自己的应用程序。我尝试了以下代码 CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)[website host], 80, &readStream, &writeStream); NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream; NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream; [inputStream setDelegate:self]; [outputStream setDelegate:self]; [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream open]; [outputStream open];,ios,macos,apple-push-notifications,nsstream,Ios,Macos,Apple Push Notifications,Nsstream,委托方法: - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { NSLog(@"stream:handleEvent: is invoked..."); switch(eventCode) { case NSStreamEventOpenCompleted: // it is getting here break; case NSStreamEventH

委托方法:

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
NSLog(@"stream:handleEvent: is invoked...");

switch(eventCode) {
    case NSStreamEventOpenCompleted:
        // it is getting here
        break;
    case NSStreamEventHasSpaceAvailable:
    {
        if (stream == oStream) {
            NSString * str = [NSString stringWithFormat:
                @"{"aps":{"alert":"Hello from APN server.","badge":"1"}}"];

            // how do i add device token

            const uint8_t * payload =
                (const uint8_t *)[str UTF8String];
            [oStream write:payload maxLength:strlen(payload)];
            [oStream close];
        }
        break;
    }
}
}

现在的问题是:

如何使用推送证书打开流 如何使用设备令牌生成有效负载