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
  }
});


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow