CodeBlanks Logo Icon CodeBlanks

Broadcast

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

index.js
// boş bir Set oluştur

// boyutunu yaz

Örnek çözüm

index.js
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

Soru
wss.____.forEach((client) => client.send(msg))
Cevap
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.

İleri seviye bölümündeki tüm dersler