Broadcast
- Node.js kursu
- İleri seviye
- Ders 41/83
- 5 dk
Tüm client'lara broadcast yapmayı öğrenirsin.
Broadcast nedir?
Broadcast, bir mesajı tüm bağlı istemcilere göndermektir. Sohbet uygulamasında, bir kullanıcı mesaj yazdığında sunucu onu herkese iletir; bu bir broadcast'dir.
ws modülünde broadcast için wss.clients kullanılır. wss.clients bir Set'tir; bağlı tüm istemcileri içerir. wss.clients.forEach((client) => { client.send(msg); }) ile herkese mesaj gönderirsin. Bazı istemciler kapalı olabilir; client.readyState === 1 (open) kontrolü ile yalnızca açık olanlara gönderirsin.
Broadcast kalıbı
Tipik broadcast kalıbı: bir istemciden mesaj gelir, sunucu bunu tüm diğer istemcilere iletir. ws.on("message", (data) => { wss.clients.forEach((client) => { if (client !== ws && client.readyState === 1) { client.send(data); } }); }).
client !== ws koşulu mesajı gönderene geri göndermemeyi sağlar. readyState === 1 yalnızca açık bağlantılara gönderir. Bu kalıp, sohbet odası mantığının temelidir. Daha karmaşık senaryolarda odalar (rooms) için istemcileri gruplamak gerekir; bu, Socket.io'da daha kolaydır.
Uygulama İstemci sayısını yaz
Boş bir Set oluştur (new Set()). .size değerini yaz.
Başlangıç kodu
// boş bir Set oluştur
// boyutunu yazÖrnek çözüm
const clients = new Set();
console.log(clients.size);Beklenen çıktı
0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Özellik adını tamamla
wss.____.forEach((client) => client.send(msg))
wss.clients.forEach((client) => client.send(msg))
Açıklama: wss.clients tüm bağlı istemcileri içeren bir Set'tir.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
wss.clients |
Tüm istemciler |
forEach |
Her birinde döner |
client.send |
Mesaj gönderir |
readyState === 1 |
Açık bağlantı |
3 Broadcast hangi veri yapısıyla yapılır?
- Set (wss.clients) Doğru cevap
- Number
- Array
- String
Açıklama: wss.clients bir Set'tir; forEach ile dönersin.