Schreibe einen grundlegenden Push-Service, der WebSockets verwendet.
Natürlich, hier ist ein grundlegendes Beispiel für einen auf WebSocket basierenden Push-Service, der Push-Benachrichtigungen an Clients senden kann:

Serverseitig (Node.js und WebSocket-Bibliothek):
```
const WebSocket = require('ws');

// Erstelle einen neuen WebSocket-Server auf Port 8080
const wss = new WebSocket.Server({ port: 8080 });

// Array zum Speichern verbundener Clients
const clients = [];

// Wenn ein Client eine Verbindung zum Server herstellt
wss.on('connection', (ws) => {
  // Füge den Client zur Liste der verbundenen Clients hinzu
  clients.push(ws);

  // Wenn eine Nachricht von einem Client empfangen wird
  ws.on('message', (message) => {
    console.log(`Empfangene Nachricht: ${message}`);

    // Sende die Nachricht an alle verbundenen Clients
    clients.forEach((client) => {
      if (client.readyState === WebSocket.OPEN) {
        client.send(message);
      }
    });
  });

  // Wenn ein Client die Verbindung trennt
  ws.on('close', () => {
    // Entferne den Client aus der Liste der verbundenen Clients
    clients.splice(clients.indexOf(ws), 1);
  });
});
```

Clientseitig (JavaScript):
```
const ws = new WebSocket('ws://localhost:8080');

// Wenn die WebSocket-Verbindung hergestellt ist
ws.addEventListener('open', (event) => {
  console.log('WebSocket-Verbindung hergestellt');
});

// Wenn eine Nachricht vom Server empfangen wird
ws.addEventListener('message', (event) => {
  console.log(`Empfangene Nachricht: ${event.data}`);
});

// Sende eine Nachricht an den Server
ws.send('Hallo, Server!');
```

Dies ist ein sehr grundlegendes Beispiel, aber es sollte Ihnen eine Vorstellung davon geben, wie ein auf WebSocket basierender Push-Service implementiert werden kann. In diesem Beispiel sendet der Server jede empfangene Nachricht von einem Client an alle verbundenen Clients und die Clients protokollieren einfach alle Nachrichten, die sie vom Server erhalten. In einem Push-Service für den realen Einsatz möchten Sie wahrscheinlich das Verhalten entsprechend Ihrem spezifischen Anwendungsfall anpassen.