>  기사  >  백엔드 개발  >  PHP에서 APNS를 통해 여러 푸시 알림을 보내는 방법은 무엇입니까?

PHP에서 APNS를 통해 여러 푸시 알림을 보내는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-21 15:42:02691검색

How to Send Multiple Push Notifications via APNS in PHP?

여러 iPhone 푸시 알림 보내기: PHP로 APNS 마스터하기

PHP가 웹사이트와 iPhone 애플리케이션을 통해 사용자 통신을 처리하는 시나리오에서 등록된 사용자에게 푸시 알림을 보내야 할 필요성이 발생합니다. 이 기사에서는 여러 푸시 알림을 보내기 위한 PHP 기반 솔루션의 구현에 대해 자세히 설명합니다.

전제 조건: 등록 시 각 사용자의 장치 토큰을 저장했는지 확인하세요.

강력한 푸시 알림 기능 만들기:

<code class="php">function sendNotification($deviceToken, $message, $passphrase) {
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'ckipad.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

    $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx);

    if (!$fp) {
        echo "Failed to connect: $err $errstr" . PHP_EOL;
        return false;
    }

    $body = [
        'aps' => [
            'badge' => +1,
            'alert' => $message,
            'sound' => 'default'
        ]
    ];

    $payload = json_encode($body);
    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

    $result = fwrite($fp, $msg, strlen($msg));

    if (!$result) {
        echo 'Message not delivered' . PHP_EOL;
        return false;
    } else {
        echo 'Message successfully delivered: ' . $message . PHP_EOL;
        return true;
    }

    fclose($fp);
}</code>

사용법:

특정 사용자에게 푸시 알림을 보내려면 적절한 장치 토큰 및 메시지가 포함된 sendNotification 함수입니다. 예:

<code class="php">if ($teacherReply) {
    sendNotification($studentDeviceToken, "New response from teacher", $passphrase);
} else {
    sendNotification($teacherDeviceToken, "New question from student", $passphrase);
}</code>

오류 처리:

sendNotification 기능에는 전달 실패 시 경고하는 오류 처리 메커니즘이 포함되어 있습니다. 성공 또는 실패를 나타내는 부울 값을 반환합니다.

이 코드를 활용하면 여러 푸시 알림을 원활하게 구현하여 사용자가 대화 및 답글에 대한 업데이트를 시기적절하게 받을 수 있습니다.

위 내용은 PHP에서 APNS를 통해 여러 푸시 알림을 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.