Broadcast WebSocket server
Broadcast WebSocket server slouží pro rozeslání přijaté zprávy všem připojeným klientům. Po tom, co nějaký klient na sever zašle zprávu, je v zápětí tato zpráva rozeslána všem aktivním klientům, připojeným na server. Tento typ serveru lze dobře využít pro propagování změn nebo událostí, které nastanou u jednoho klienta, všem ostatním připojeným naslouchajícím klientům. Broadcast WebSocket server zasílá přijatou zprávu všem připojeným klientům a také klientovi, od kterého byla zpráva přijata.
Příklad Broadcast WebSocket serveru
V příkladu níže skript naslouchá na Broadcast WebSocket serveru pomocí čtyř klientů, kteří vypisují všechny přijaté zprávy. Pomocí formuláře lze pak prostřednictvím jednoho z klientů zaslat na server zprávu, kterou server obratem zašle všem připojeným klientům a ti ji následně vypíšou.
<form>
<input type="text" value="Broadcast message" id="broadcastInput">
<input type="submit" value="Broadcast" id="broadcastBtn">
<div id="broadcastOutput"></div>
</form>
<script>
var ws1 = new WebSocket('ADRESA_MEHO_BROADCAST_WEESKA');
ws1.addEventListener('message', function (event) {
document.getElementById('broadcastOutput').innerHTML += "Broadcast #1: "" + event.data + ""<br>";
});
document.getElementById('broadcastBtn').addEventListener('click', function (event) {
ws1.send(document.getElementById('broadcastInput').value);
event.preventDefault();
return false;
});
var ws2 = new WebSocket('ADRESA_MEHO_BROADCAST_WEESKA');
ws2.addEventListener('message', function (event) {
document.getElementById('broadcastOutput').innerHTML += "Broadcast #2: "" + event.data + ""<br>";
});
var ws3 = new WebSocket('ADRESA_MEHO_BROADCAST_WEESKA');
ws3.addEventListener('message', function (event) {
document.getElementById('broadcastOutput').innerHTML += "Broadcast #3: "" + event.data + ""<br>";
});
var ws4 = new WebSocket('ADRESA_MEHO_BROADCAST_WEESKA');
ws4.addEventListener('message', function (event) {
document.getElementById('broadcastOutput').innerHTML += "Broadcast #4: "" + event.data + ""<br>";
});
</script>