"push" 使用 javascript 和 php 的确切机制是什么?

What is exact mechanism of "push" using javascript and php?

我发现了 firebase,根据手册和许多关于它的文章,它有助于在 php 项目中创建推送功能。

我完全可以理解,使用 Curl,我可以将数据发送到 firebase 服务器。但我想不出将数据实时转发给目标用户的好主意。 Javascript 将启用它,但它与 Ajax 轮询一样安静吗?

使用PHP和Javascript,以及firebase等推送云服务,如何进行实时推送通知?机制的粗略草图会有所帮助!

首先,您应该拥有要发送推送的设备的“设备令牌”notification.Secondly您必须拥有“”服务器密钥',如果您想进行实时推送通知,您可以轻松地从 firebase console.Now 获得,只需进行 ajax POST 调用 到下面的函数,它将 array 作为具有 devicetokenmessage 的参数] 你想传递推送通知。

public function sendNotification($postData = ""){

        //FCM api URL
        $url = 'https://fcm.googleapis.com/fcm/send';

        //api_key available in Firebase Console -> Project Settings -> CLOUD MESSAGING -> Server key
        $server_key = 'AAAA8mhm5CE:APA91bE420_Dl5GcRwpmNCvwB-m6QSLeEXhwTjNs5XR8RRSdBWcWkOuXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

        $data = $postData;

        $devicetoken = $data['devicetoken'];

        $message = $data['messege'];

        $fields = array (
            'registration_ids' => array (
                    $devicetoken
            ),

            'notification' => array (
                    "title" => "Title",
                    "text" => $message
            )
        );

        //header with content_type api key
        $headers = array(
            'Content-Type:application/json',
            'Authorization:key='.$server_key
            );

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
        $result = curl_exec($ch);
        if ($result === FALSE) {
            die('FCM Send Error: ' . curl_error($ch));
        }
        curl_close($ch);
        return TRUE;
}