Wer schon einmal Systeme gebaut hat, bei denen viele Clients gleichzeitig Nachrichten empfangen und verarbeiten sollen, kennt das Problem: Wie verteile ich Messages effizient, ohne dass ein zentraler Server jede Nachricht individuell zustellen muss? Oft wird dabei auf klassische Message-Broker wie Kafka, RabbitMQ oder MQTT gesetzt. Diese bringen aber ihre eigene Komplexität mit – Setup, Konfiguration, Rechte- und Themenverwaltung. Für viele Szenarien, in denen man einfach nur schnell und flexibel Daten „in die Runde werfen“ möchte, sind solche Schwergewichte schlicht überdimensioniert.
Genau hier setzt der dynamic messaging broadcast server von Symolo an: Ein einfacher Ansatz, Nachrichten über TCP-Sockets (genauer gesagt WebSockets) an viele Teilnehmer gleichzeitig zu verteilen.
Ein wichtiger Unterschied zu klassischen Broadcast-Mechanismen liegt in der Wahl des Protokolls: TCP. Während UDP-Broadcasts nur innerhalb eines lokalen Netzwerks funktionieren – also typischerweise nicht über Routergrenzen hinweg –, ermöglicht TCP die Kommunikation über das Internet hinweg.
Das bedeutet:
Dadurch ist es möglich, dass sich beliebige Teilnehmer – unabhängig von ihrem Standort – in die Nachrichten-Pipeline „reinhängen“ und sofort Teil des Systems werden.
Ein weiterer Vorteil: Das Tool ist bereits fester Bestandteil des Symolo DSF-Servers. Das bedeutet, bei jeder Installation des DSF-Servers steht die Nachrichten-Pipeline sofort zur Verfügung – ohne zusätzlichen Setup-Aufwand oder externe Abhängigkeiten. Entwickler und Administratoren müssen nichts weiter konfigurieren, sondern können direkt nach der Installation Clients anbinden, Filter setzen und Nachrichten verteilen. Damit wird die Funktion nahtlos in bestehende Symolo-Workflows integriert und ist „out of the box“ einsatzbereit.
Die Grundidee ist simpel:
/
beginnen) wird an alle Clients verteilt.Das Besondere: Jeder, der verbunden ist, kann nicht nur empfangen, sondern auch senden. Dadurch entsteht ein sehr flexibles Kommunikationsmodell, das sowohl für Debugging, Event-Streaming als auch für kollaborative Anwendungen nützlich ist.
Sehen wir uns an, wie ein Client aussieht, der sich mit dem Symolo-Server verbindet:
const dmbLogger = new WebSocket("wss://<MEINSERVER>/dmb");
dmbLogger.onopen = () => {
dmbLogger.send("123"); // Erst Authentifizierung mit Passwort
};
dmbLogger.onmessage = (d) => {
// Nach erfolgreicher Authentifizierung
if (d.data === "Welcome") {
// Filter setzen – in diesem Fall nur Nachrichten, die mit "MDE" beginnen
dmbLogger.send("/filter.add>MEINFILTER");
}
// Ab jetzt kommen gefilterte Nachrichten an
if (d.data.startsWith("MEINFILTER")) {
const msgSplit = d.data.split('|');
console.log("Gefilterte Nachricht:", msgSplit);
}
};
Verbindung & Authentifizierung
Der Client verbindet sich mit wss://<MEINSERVER>/dmb
und sendet als Erstes ein Passwort.
Willkommensnachricht
Der Server bestätigt den erfolgreichen Login mit "Welcome"
.
Filter setzen
Anschließend legt der Client fest, welche Nachrichten er empfangen möchte (z. B. /filter.add>MDE
).
Nachrichten empfangen & verarbeiten
Alle Nachrichten, die mit MEINFILTER
beginnen, landen nun im Client, werden geparst und können beliebig weiterverarbeitet werden.
Mit diesem Ansatz gelingt es Symolo, ein leichtgewichtiges, flexibles Nachrichtenverteilungssystem bereitzustellen, das ganz ohne schwerfällige Broker-Lösungen auskommt. Jeder Client kann gleichzeitig Sender und Empfänger sein, und durch die Filterlogik bleibt die Datenflut dennoch kontrollierbar.
Besonders spannend ist der Einsatz von TCP statt UDP-Broadcast: Nachrichten können nicht nur im lokalen Netz, sondern auch problemlos über das Internet verteilt werden – ohne auf spezielle Netzwerk-Setups angewiesen zu sein.
Ob für Debugging, Monitoring oder den schnellen Aufbau von Echtzeitkommunikation – dieses Modell zeigt, wie einfach Messaging über TCP-Sockets sein kann.