Recherche…
Syntaxe
- nouveau EventSource ("api / stream");
- eventSource.onmessage = function (event) {}
- eventSource.onerror = function (event) {};
- eventSource.addEventListener = fonction (nom, rappel, options) {};
- eventSource.readyState;
- eventSource.url;
- eventSource.close ();
Configuration d'un flux d'événements de base sur le serveur
Vous pouvez configurer votre navigateur client pour écouter les événements serveur entrants à l'aide de l'objet EventSource
. Vous devrez fournir au constructeur une chaîne du chemin d'accès à l'API du serveur enpoint, indiquant qu'il inscrira le client aux événements du serveur.
Exemple:
var eventSource = new EventSource("api/my-events");
Les événements ont des noms avec lesquels ils sont catégorisés et envoyés, et un auditeur doit être configuré pour écouter chaque événement par son nom. le nom de l'événement par défaut est un message
et, pour l'écouter, vous devez utiliser le programme d'écoute d'événement approprié .onmessage
evtSource.onmessage = function(event) {
var data = JSON.parse(event.data);
// do something with data
}
La fonction ci-dessus s'exécutera chaque fois que le serveur transmettra un événement au client. Les données sont envoyées en tant que text/plain
, si vous envoyez des données JSON, vous souhaiterez peut-être les analyser.
Fermer un flux d'événements
Un flux d'événements vers le serveur peut être fermé à l'aide de la méthode EventSource.close()
var eventSource = new EventSource("api/my-events");
// do things ...
eventSource.close(); // you will not receive anymore events from this object
La méthode .close()
ne fait rien .close()
le flux est déjà fermé.
Liaison des écouteurs d'événements à EventSource
Vous pouvez lier des écouteurs d'événement à l'objet EventSource
pour écouter différents canaux d'événements à l'aide de la méthode .addEventListener
.
EventSource.addEventListener (name: String, callback: Function, [options])
name : le nom associé au nom du canal sur lequel le serveur émet des événements.
callback : la fonction callback s'exécute chaque fois qu'un événement lié au canal est émis, la fonction fournit l' event
en tant qu'argument.
options : options caractérisant le comportement de l'écouteur d'événement.
L'exemple suivant montre un flux d'événements de pulsation du serveur, le serveur envoie des événements sur le canal de heartbeat
et cette routine s'exécutera toujours lorsqu'un événement est accepté.
var eventSource = new EventSource("api/heartbeat");
...
eventSource.addEventListener("heartbeat", function(event) {
var status = event.data;
if (status=='OK') {
// do something
}
});