0Pricing
Dart Academy · Lezione

Stream singoli e broadcast

Scegliere lo stream adatto a più ascoltatori.

Stream singoli e broadcast è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.

Due tipi di stream

Gli stream Dart sono di due tipi: single-subscription e broadcast. La scelta dipende dal numero di ascoltatori necessari.

Stream a sottoscrizione singola

Uno stream single-subscription consente esattamente un ascoltatore per tutta la sua durata. È il tipo predefinito ed è ideale per una sequenza da leggere una sola volta, come il contenuto di un file. 📄

Ascoltare una sola volta

Se prova ad ascoltare due volte uno stream a sottoscrizione singola, Dart genera un StateError. Lo stream ricorda di avere già il suo unico ascoltatore.

final s = Stream.fromIterable([1, 2]);
s.listen(print);
s.listen(print); // throws StateError

Memorizzati fino all'ascolto

Uno stream a sottoscrizione singola attende pazientemente. Non produce eventi finché qualcosa non inizia ad ascoltarlo, quindi non viene perso alcun valore.

Stream broadcast

Uno stream broadcast consente a molti ascoltatori di iscriversi contemporaneamente. Ogni ascoltatore attivo riceve gli stessi eventi non appena vengono emessi. 📡

Convertire in broadcast

Trasformi uno stream a sottoscrizione singola in uno condiviso chiamando asBroadcastStream. Ora diversi ascoltatori possono collegarsi.

final shared = source.asBroadcastStream();
shared.listen(print);
shared.listen((v) => log(v));

Gli ascoltatori tardivi perdono gli eventi

Gli stream broadcast non memorizzano gli eventi. Un ascoltatore che si iscrive in ritardo vede solo gli eventi emessi da quel momento in poi, mai quelli precedenti.

I controller scelgono il tipo

Un StreamController crea per impostazione predefinita uno stream a sottoscrizione singola. Usi il costruttore broadcast quando desidera più ascoltatori.

final ctrl = StreamController<int>.broadcast();
ctrl.stream.listen(print);

Quando usare il tipo singolo

Scelga uno stream single-subscription quando i dati fluiscono una sola volta verso un unico consumer, ad esempio i byte di una risposta di rete o di un file letto.

Quando usare broadcast

Scelga uno stream broadcast per eventi continui a cui sono interessate molte parti dell'app, come i tocchi sui pulsanti o gli aggiornamenti in tempo reale dei sensori.

Controllare prima dell'ascolto

Non sa quale tipo sta usando? La proprietà isBroadcast glielo indica, così può evitare lo StateError causato dal doppio ascolto degli stream singoli.

if (!stream.isBroadcast) {
  // only one listener allowed
}

Verifica rapida

Quale stream è adatto a molti ascoltatori?

Riepilogo

Gli stream a sottoscrizione singola servono un ascoltatore e memorizzano gli eventi fino alla lettura; gli stream broadcast servono molti ascoltatori, ma saltano gli eventi già emessi. Scelga in base al numero di ascoltatori. 🎉

Domande Frequenti

La lezione «Stream singoli e broadcast» è gratuita?

Sì — il testo completo di «Stream singoli e broadcast» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.

Cosa imparerò in «Stream singoli e broadcast»?

Scegliere lo stream adatto a più ascoltatori. Eserciti Dart Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Dart Academy?

Non è richiesta alcuna esperienza precedente. Dart Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Stream singoli e broadcast»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Dart Academy?

Sì. Ogni lezione Dart Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Ascoltare con await for
  2. Stream singoli e broadcast
  3. Trasformare gli stream: map, where, take
  4. Creare stream con async*
← Torna a Dart Academy