苹果推送通知iOS和谷歌云消息android使用php


apple push notification for iOS and google cloud messaging for android using php?

我正在寻找php代码,它可以向ios设备和android设备发送推送通知。

我单独使用easyapns进行ios推送通知,使用gcm进行android推送通知。

我想合并这两个代码,并制作一个用于为两个设备发送推送通知的代码。

我只研究php部分。有什么解决方案可以让它变得简单吗?

经过研究,我发现了一个适用于ios的解决方案。

 public function send_notification($registration_id,$message,$ios_certificate,$badge,$tHost){
    // Provide the Host Information.
    //$tHost = 'gateway.sandbox.push.apple.com';
    $tPort = 2195;
    // Provide the Certificate and Key Data.
    //$tCert = 'certificates/meetmethere/apns-dev-cert.pem';
    $tPassphrase = '';
    //$tToken = 'efdf10632aa4e711ef8c57abf2a3cdec51e7c42811bb998c3e26de2876bac8fa';
    //$tAlert = 'this is the test message ';
    // The Badge Number for the Application Icon (integer >=0).
    $tBadge = 0;
    // Audible Notification Option.
    $tSound = 'default';
    // The content that is returned by the LiveCode "pushNotificationReceived" message.
    $tPayload = 'message';
    // Create the message content that is to be sent to the device.
    $tBody['aps'] = array (
                        'alert' => $message,
                        'badge' => $badge,
                        'sound' => $tSound,
                    );
    $tBody ['payload'] = $tPayload;
    $tBody = json_encode ($tBody);
    // Create the Socket Stream.
    $tContext = stream_context_create ();
    stream_context_set_option ($tContext, 'ssl', 'local_cert', $ios_certificate);
    // Remove this line if you would like to enter the Private Key Passphrase manually.
    stream_context_set_option ($tContext, 'ssl', 'passphrase', $tPassphrase);
    // Open the Connection to the APNS Server.
    $tSocket = stream_socket_client ('ssl://'.$tHost.':'.$tPort, $error, $errstr, 30, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $tContext);
    // Check if we were able to open a socket.
    if (!$tSocket)
        $status=false;
    // Build the Binary Notification.
    $tMsg = chr (0) . chr (0) . chr (32) . pack ('H*', $registration_id) . pack ('n', strlen ($tBody)) . $tBody;
    // Send the Notification to the Server.
    $tResult = fwrite ($tSocket, $tMsg, strlen ($tMsg));
    if ($tResult)
        $status=true;
    else
        $status=false;
    fclose ($tSocket);
            return $status;
}`