Maison >développement back-end >tutoriel php >Comment créer des applications basées sur des événements en utilisant PHP
Les moyens de créer des applications basées sur des événements en PHP incluent l'utilisation de l'API EventSource pour créer une source d'événements et l'utilisation d'un objet EventSource pour écouter les événements côté client. Envoyez des événements à l'aide de Server Sent Events (SSE) et écoutez les événements côté client à l'aide de l'objet XMLHttpRequest. Un exemple pratique consiste à utiliser EventSource dans un site Web de commerce électronique pour mettre à jour les inventaires en temps réel. Ceci est réalisé côté serveur en modifiant l'inventaire de manière aléatoire et en envoyant des mises à jour, et le client écoute les mises à jour d'inventaire via EventSource et les affiche dans. temps réel.
Comment créer des applications basées sur des événements en utilisant PHP
Dans le développement Web moderne, les applications basées sur des événements deviennent de plus en plus populaires. Ils permettent aux développeurs de créer des applications qui répondent aux interactions des utilisateurs, aux événements du serveur et à d'autres déclencheurs. PHP, en tant que langage de programmation côté serveur populaire, offre un support puissant pour la création d'applications basées sur des événements.
EventSource API
PHP fournit l'API EventSource, qui permet au navigateur d'établir une connexion persistante avec le serveur et de recevoir des données lorsqu'un événement se produit côté serveur.
Pour utiliser un EventSource, vous devez d'abord créer la source d'événement côté serveur :
<?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); $count = 0; while (true) { echo "data: {$count}\n\n"; $count++; flush(); sleep(1); } ?>
Cela créera une source d'événement qui envoie un numéro au client chaque seconde.
Utilisation d'EventSource côté client
Ensuite, vous pouvez utiliser EventSource côté client pour écouter la source de l'événement :
var source = new EventSource('/events'); source.onmessage = function(event) { console.log(event.data); };
Cela créera une instance EventSource et écoutera les événements du serveur. Lorsque le serveur envoie des données, elles sont imprimées sur la console.
Événements envoyés par le serveur basés sur Push (SSE)
SSE est une autre méthode de création d'applications basées sur des événements qui fournit des fonctionnalités similaires à EventSource. Pour utiliser SSE, vous devez d'abord envoyer une réponse à l'événement côté serveur en utilisant PHP :
<?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); while (true) { $event = json_encode(['data' => 'some data']); echo "event: {$event}\n\n"; flush(); sleep(1); } ?>
Cela enverra un événement côté serveur chaque seconde.
Utilisation de SSE côté client
Vous pouvez écouter les événements SSE côté client à l'aide de XMLHttpRequest (XHR) :
var xhr = new XMLHttpRequest(); xhr.addEventListener('message', function(event) { console.log(event.data); }); xhr.open('GET', '/sse', true); xhr.send();
Cela ouvrira une requête GET au point de terminaison SSE et imprimera les données lorsque l'événement est reçu. .
Cas pratique : mises à jour des stocks en temps réel
Considérons un site Web de commerce électronique avec des inventaires en temps réel. À l'aide d'applications basées sur des événements, les sites Web peuvent envoyer des mises à jour aux clients lorsque les stocks changent.
Côté serveur, vous pouvez utiliser PHP pour créer une source d'événements et envoyer des mises à jour lorsque l'inventaire change :
<?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); $stock = 100; while (true) { // 随机更改库存 $stock += rand(-10, 10); $event = json_encode(['stock' => $stock]); echo "event: {$event}\n\n"; flush(); sleep(1); } ?>
Côté client, vous pouvez utiliser EventSource pour écouter les mises à jour d'inventaire :
var source = new EventSource('/stock-updates'); source.onmessage = function(event) { var data = JSON.parse(event.data); document.getElementById('stock-count').innerHTML = data.stock; };
Cela mettra à jour le l'inventaire de la page en temps réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!