MessageChannel
- Node.js kursu
- İleri seviye
- Ders 10/83
- 5 dk
MessageChannel ile worker'lar arası kanal öğrenirsin.
MessageChannel
MessageChannel, iki bağlı port oluşturur: port1 ve port2. Bir porta yazılan mesaj diğer portta "message" olayı olarak görünür. Bu, işçiler arasında doğrudan iletişim kanalı kurmanı sağlar.
Tipik kullanım: ana, bir MessageChannel oluşturur, port2'yi worker.postMessage(msg, [port2]) ile bir işçiye transfer eder. Böylece iki işçi anaya uğramadan birbiriyle konuşabilir. Bu, işçi sayısı çok olduğunda ana darboğazını azaltır.
port1 ve port2
Bir MessageChannel oluşturduğunda port1 ve port2 alırsın. port1.postMessage(data) çağırınca port2.on("message", handler) tetiklenir ve tersi de geçerlidir.
Portlar EventEmitter'dır; on("message"), on("close") gibi olayları dinlersin. Bir portu port.start() ile etkinleştirmen gerekebilir; aksi halde mesajlar kuyrukta bekler. İş bitince port.close() ile kapatırsın.
Uygulama port1.postMessage türünü yaz
MessageChannel sınıfını içe aktar. Yeni bir kanal oluştur. typeof port1.postMessage sonucunu yaz.
Başlangıç kodu
// MessageChannel'ı içe aktar
// kanal oluştur
// postMessage türünü yazÖrnek çözüm
const { MessageChannel } = require("worker_threads");
const { port1, port2 } = new MessageChannel();
console.log(typeof port1.postMessage);Beklenen çıktı
function
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 MessageChannel ne oluşturur?
- Tek bir port
- İki bağlı port Doğru cevap
- Üç ayrı kanal
- Bir iş parçacığı
Açıklama: MessageChannel iki bağlı port oluşturur.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
MessageChannel |
İki port oluşturur |
port1 |
Bir taraf |
port2 |
Diğer taraf |
port.postMessage |
Mesaj gönderir |
3 Sınıf adını tamamla
const { port1, port2 } = new ____()
const { port1, port2 } = new MessageChannel()
Açıklama: new MessageChannel() iki bağlı port oluşturur.