Position actuelle: Accueil> Derniers articles> Comment utiliser PHP pour implémenter la push et la communication en temps réel (tutoriel technique SSE)

Comment utiliser PHP pour implémenter la push et la communication en temps réel (tutoriel technique SSE)

M66 2025-07-08

Comment utiliser PHP pour implémenter la poussée côté serveur et la communication en temps réel

Avec le développement rapide de la technologie et la vulgarisation des applications Internet, la communication en temps réel est progressivement devenue une partie importante des applications Web. La technologie push côté serveur permet aux développeurs d'envoyer des données mises à jour en temps réel directement au client sans avoir besoin de demandes actives par le client. Grâce à l'interaction en temps réel entre les serveurs et les clients, l'expérience utilisateur et les performances d'application peuvent être améliorées.

Dans PHP, nous pouvons utiliser une variété de technologies pour réaliser la poussée côté serveur et la communication en temps réel, telles que: WebSocket, sondage long et événements de serveur (SSE). Cet article se concentrera sur la façon d'implémenter cette fonctionnalité via des événements de serveur (SSE).

Quels sont les événements de serveur (SSE)

Les événements de serveur (SSE) sont une technologie basée sur le protocole HTTP qui prend en charge la poussée des données d'un serveur vers un client. Contrairement à WebSocket, SSE est un mode de communication à sens unique où le flux de données est poussé du serveur vers le client. Cette technologie est très adaptée aux notifications en temps réel, aux mises à jour de diffusion en direct, à l'affichage dynamique des données et à d'autres scénarios.

Implémentez SSE Push dans PHP

Tout d'abord, nous devons configurer un service SSE Push en PHP. Voici un exemple de code PHP:

 <?php
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
header("Connection: keep-alive");

// Poussez les données vers le cycle client
while (true) {
    // Obtenez des données d&#39;une base de données ou d&#39;une autre source de données
    $data = getData();

    // Envoyer des données au client
    echo "data: " . json_encode($data) . "\n\n";
    ob_flush();
    flush();

    // Contrôlez la vitesse de la poussée des données
    sleep(1);
}

// Comment obtenir des données
function getData() {
    // Ici, vous pouvez interroger la base de données ou d&#39;autres sources de données en fonction des besoins de l&#39;entreprise
    $data = array(
        'message' => 'Hello, SSE!',
        'time' => time()
    );
    return $data;
}
?>

Dans le code ci-dessus, nous disons d'abord au navigateur que le flux de données SSE est renvoyé en définissant l'en-tête HTTP. Ensuite, dans une boucle infinie, les données sont obtenues à partir de la source de données (telles que la base de données), codée au format JSON, et envoyée au client via l'instruction «Echo» de PHP. Une fois chaque donnée envoyée, appelez `ob_flush () 'et` flush () `pour vous assurer que les données sont transmises au client en temps opportun. Contrôlez la fréquence des données poussé à travers la fonction `sleep () '.

Le client reçoit des données

Afin de recevoir des données poussées par le serveur, le client doit utiliser l'objet `EventSource» dans JavaScript pour établir une connexion avec le serveur. Voici un exemple de code HTML et JavaScript simple:

 <!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>SSE Demo</title>
</head>
<body>
    <div id="message"></div>
    <script>
        var eventSource = new EventSource("push.php");

        eventSource.onmessage = function(event) {
            var data = JSON.parse(event.data);
            document.getElementById("message").innerHTML = data.message;
        };
    </script>
</body>
</html>

Dans cet exemple client, nous créons un objet `EventSource 'et spécifions l'URL pour obtenir les données du serveur (voici` push.php`). Lorsque le serveur pousse de nouvelles données, l'événement «OnMessage» sera licencié et les données reçues seront analysées et affichées sur la page Web.

Résumer

Grâce à l'introduction de cet article, nous avons appris à utiliser PHP pour implémenter la poussée côté serveur et la communication en temps réel. Avec la technologie des événements de serveur (SSE), nous pouvons facilement pousser les données mises à jour en temps réel aux clients sans avoir besoin de configurations WebSocket complexes. SSE nous fournit une solution simple et efficace pour créer des capacités de poussée de données en temps réel.

L'application de cette technologie peut non seulement améliorer l'interactivité en temps réel des applications Web, mais également réduire efficacement le fardeau du serveur et convient à divers scénarios qui nécessitent des mises à jour en temps réel. J'espère que cet article vous sera utile pour réaliser la communication en temps réel PHP.