且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何向多个设备发送推送通知?

更新时间:2022-11-03 22:40:35

尝试此示例代码并针对您的环境进行修改.

Try this example code and modify for your environment.

    $apnsHost = '<APNS host>';
    $apnsPort = <port num>;
    $apnsCert = '<cert>';

    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

    $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);

    $payload['aps'] = array('alert' => 'some notification', 'badge' => 0, 'sound' => 'none');
    $payload = json_encode($payload);

// Note: $device_tokens_array has list of 5 devices' tokens

    for($i=0; $i<5; $i++)
    {
            $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device_tokens_array[i])) . chr(0) . chr(strlen($payload)) . $payload;

            fwrite($apns, $apnsMessage);
    }?>

本文有助于验证断开连接和连接状态:Apple 推送通知: 发送大量消息

This article helps verifying drop connection and connection status: Apple Push Notification: Sending high volumes of messages

其他参考链接:

如何我可以在 iPhone 中一次性向多台设备发送推送通知吗?使用推送通知时如何处理多个设备?