Maison > développement back-end > tutoriel php > Comment créer des applications basées sur des événements en utilisant PHP

Comment créer des applications basées sur des événements en utilisant PHP

PHPz
Libérer: 2024-05-04 14:24:02
original
650 Les gens l'ont consulté

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.

如何使用 PHP 构建基于事件的应用程序

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);
}
?>
Copier après la connexion

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);
};
Copier après la connexion

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);
}
?>
Copier après la connexion

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();
Copier après la connexion

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);
}
?>
Copier après la connexion

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;
};
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal