What are some best practices for setting up push notifications to a mobile device for real-time server monitoring using PHP?

Setting up push notifications for real-time server monitoring using PHP involves using a service like Firebase Cloud Messaging (FCM) to send notifications to mobile devices. To achieve this, you need to generate a unique device token for each mobile device, store these tokens in a database, and then trigger notifications from your server-side PHP code based on specific events or conditions.

// Sample PHP code to send push notification using Firebase Cloud Messaging (FCM)

// Your FCM server key
define('FCM_SERVER_KEY', 'YOUR_FCM_SERVER_KEY');

// Device token of the mobile device
$deviceToken = 'DEVICE_TOKEN';

// Message payload for the notification
$message = array(
    'title' => 'Server Alert',
    'body' => 'Server is down!',
    'data' => array('key' => 'value')
);

// Send push notification using cURL
$ch = curl_init('https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('to' => $deviceToken, 'notification' => $message)));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: key=' . FCM_SERVER_KEY));
$result = curl_exec($ch);
curl_close($ch);

// Handle the result of the push notification request
if ($result === false) {
    echo 'Failed to send push notification';
} else {
    echo 'Push notification sent successfully';
}