Event-Emitter
Event-Emitter sind Objekte vom Typ EventEmitter, welche ein Event auslösen. Damit lassen sich eigene Events erstellen.
// Event-Emitter
import event from "events";
// Emitter erstellen
let emitter = new event.EventEmitter();
// Event mit on() registrieren
// 1. Arg: Event-Name
// 2. Arg: Callback (mit oder ohne Parameter)
emitter.on("heroComesIn", (firstName, lastName) => {
console.log(`Hallo ${firstName} ${lastName}. Schön, dass du da bist!`);
});
// mehrere Reaktionen auf Ereignis registrierbar (wird ebenfalls ausgeführt)
emitter.on("heroComesIn", (firstName, lastName) => {
console.log(`Hallo ${firstName} ${lastName}. Was willst du trinken?`);
});
// mit once() Ereignis registrieren, dass nach dem 1. Eintreten automatisch deregistriert wird
// (nur bei ersten Mal ausgeführt wird)
emitter.once("heroGoesOut", (firstName) => {
console.log(`Bis bald, ${firstName}`);
})
// Ereignis auslösen mit emit()
// emit(event, argumente für callback)
emitter.emit("heroComesIn", "Jessica", "Jones");
emitter.emit("heroComesIn", "Luke", "Cage");
emitter.emit("heroGoesOut", "Jessica", "Jones");
emitter.emit("heroGoesOut", "Luke", "Cage");
/*
Alternative zu on(): addListener
addListener(event, callback)
Deregistrieren mit removeListener(event, callback)
alle Listener für Event entfernen mit removeAllListeners(event)
*/
Websockets
Bislang war durch HTTP-Protokoll lediglich Anfrage des Clients und die Antwort des Servers möglich. Mit Websockets ist eine bidirektionale Kommunikation möglich z.B. über das TCP/IP Protokoll (nutzen Server untereinander).
Hint
In manchen Netzwerken (z.B. Firmennetzwerk) sind Websockets geblockt.
Socket.io (https://socket.io/) hilft dabei, die
Socketverbindung auf Server realisiert wird
Siehe Tag_23/NodeJS/10 Websockets.
Canvas
Siehe Tag_23/canvas.
Ein Canvas ist ein HTML-Element für eine Zeichenfläche.