CodeBlanks Logo Icon CodeBlanks

Broadcast channel

JavaScript kursu · Uzman · Ders 16/63

Aynı kökenli sekmeler arası mesajlaşmayı BroadcastChannel ile yapmayı öğrenirsin.

BroadcastChannel

BroadcastChannel aynı kökenli (same-origin) sekmeler, pencereler ve iframe'ler arasında mesajlaşmayı sağlar. Bir sekmeden gönderilen mesaj, diğer tüm sekmelerdeki aynı adlı kanalda dinlenir. Sunucu gerekmez; tüm iletişim tarayıcı içindedir.

Önce new BroadcastChannel('metrics') ile kanalı oluşturursun. Mesaj göndermek için channel.postMessage(data), dinlemek için channel.onmessage kullanırsın. İşin bitince channel.close() ile kanalı kapatırsın.

Aynı köken sınırı

Aynı köken sınırı önemlidir: kanal yalnızca aynı protokol, alan adı ve porttan açılan sekmelerde çalışır. http://site.com ile https://site.com ayrı kökenlerdir; aralarında mesaj gitmez. Bu, güvenlik için konulmuş bir gerekliliktir.

Gelen mesaj event.data içinde taşınır. Mesaj her zaman diğer sekmelere gider; gönderen sekme kendi mesajını almaz. Birden çok sekme açıkken her biri ayrı bir alıcıdır.

Uygulama metrics kanalında mesaj yayınla

'metrics' adında bir BroadcastChannel oluştur. postMessage ile { value: 42 } gönder.

Örnek çözümü göster
1. const channel = new BroadcastChannel('metrics') ile kanalı oluştur.
2. channel.postMessage({ value: 42 }) ile mesajı gönder.

Örnek çözüm:
const channel = new BroadcastChannel('metrics');
channel.postMessage({ value: 42 });

Kendini test et

  1. Mesaj gönder

    channel.____({ value: 42 });
    Cevabı göster
    channel.postMessage({ value: 42 });
  2. BroadcastChannel hangi sekmeler arasında çalışır?

    • Aynı kökenli (same-origin) sekmeler arasında
    • Tüm tarayıcıdaki sekmeler arasında
    • Yalnızca aynı sekmede
    • Farklı cihazlar arasında
    Cevabı göster

    Aynı kökenli (same-origin) sekmeler arasında — Doğru. BroadcastChannel yalnızca aynı kökenli sekmelerde çalışır; bu bir güvenlik sınırdır.

  3. BroadcastChannel metotlarını eşleştir

    constructor
    Kanalı oluşturur
    postMessage
    Mesaj gönderir
    onmessage
    Mesaj alır
    close
    Kanalı kapatır

Uzman bölümündeki tüm dersler