Broadcast stream
- Dart kursu
- İleri seviye
- Ders 13/83
- 5 dk
Broadcast stream ile çoklu dinleyici öğrenirsin.
Broadcast stream
Standart bir Stream tek dinleyicilidir: ikinci bir listen hataya yol açar. Broadcast stream ise birden çok dinleyiciye izin verir.
Bir stream'u broadcast yapmak için .asBroadcastStream() çağrılır ya da StreamController.broadcast() ile açılır. Her dinleyici aynı olayları alır.
Kullanım: bir olay kaynağını (ör. zamanlayıcı, WebSocket) uygulamanın birden çok yerine dağıtmak. Ancak broadcast stream'lerde state'li operatörler (buffer, debounce) beklenenden farklı davranabilir.
asBroadcastStream
stream.asBroadcastStream(), tek dinleyicili stream'u broadcast'a çevirir. Dönen stream'a istediğin kadar listen yapabilirsin.
Örnek: var b = Stream.fromIterable([1, 2, 3]).asBroadcastStream();. b.listen(print) ve b.listen(print) her ikisi de 1, 2, 3 alır.
Dikkat: asBroadcastStream çağrıldıktan sonra olaylar dinleyicilere dağıtılır; geciken dinleyici öncekileri kaçırır.
Uygulama Broadcast stream'i dinle
main'i async yap. var s = Stream.fromIterable([1, 2, 3]).asBroadcastStream(); ekle. await s.forEach(print); ekle.
Başlangıç kodu
void main() {
// async yap; fromIterable([1,2,3]) stream'ını broadcast'a çevir; forEach ile yazdır
}Örnek çözüm
void main() async {
var s = Stream.fromIterable([1, 2, 3]).asBroadcastStream();
await s.forEach(print);
}Beklenen çıktı
1 2 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi broadcast stream özelliğidir?
- Birden çok dinleyiciye izin verir Doğru cevap
- İkinci dinleyici hataya yol açar
- Yalnızca tek dinleyici alır
- Yalnızca Future ile çalışır
Açıklama: broadcast stream birden çok dinleyiciye izin verir.
2 Broadcast'a çevir
var b = s.____();
var b = s.asBroadcastStream();
Açıklama: asBroadcastStream stream'u broadcast'a çevirir.
3 Stream türlerini eşleştir
| Kavram | Anlamı |
|---|---|
Single-subscription |
Tek dinleyici |
Broadcast |
Çok dinleyici |
asBroadcastStream |
Dönüştürme |
StreamController.broadcast |
Çok dinleyicili kaynak |