--- title: MessageChannel slug: Web/API/MessageChannel translation_of: Web/API/MessageChannel ---

{{APIRef("HTML DOM")}}

A interface MessageChannel da API Channel Messaging nos permite criar um novo canal de mensagem e enviar os dados através de suas duas propriedades {{domxref("MessagePort")}}.

{{AvailableInWorkers}}

Propriedades

{{domxref("MessageChannel.port1")}} {{readonlyInline}}
Retorna port1 do canal.
{{domxref("MessageChannel.port2")}} {{readonlyInline}}
Retorna port2 do canal.

Construtor

{{domxref("MessageChannel.MessageChannel", "MessageChannel()")}}

Retorna um novo objeto MessageChannel com dois novos objetos {{domxref("MessagePort")}}.

Exemplo

No seguinte bloco de codigo, você pode ver um novo canal sendo criado usando o construtor {{domxref("MessageChannel.MessageChannel", "MessageChannel()")}}. Quando o {{HTMLElement("iframe")}} tiver carregado, nos passamos o {{domxref("MessageChannel.port2")}} para o {{HTMLElement("iframe")}} usando {{domxref("MessagePort.postMessage")}} juntamente com uma mensagem. O manipulador handleMessage então reponde à mensagem que foi enviada de volta do {{HTMLElement("iframe")}} (using {{domxref("MessagePort.onmessage")}}), colocando-o em um parágrafo.

var channel = new MessageChannel();
var para = document.querySelector('p');

var ifr = document.querySelector('iframe');
var otherWindow = ifr.contentWindow;

ifr.addEventListener("load", iframeLoaded, false);

function iframeLoaded() {
  otherWindow.postMessage('Hello from the main page!', '*', [channel.port2]);
}

channel.port1.onmessage = handleMessage;
function handleMessage(e) {
  para.innerHTML = e.data;
}   

Para um exemplo completo, veja nosso  channel messaging basic demo no Github (rode online também ).

Especificações

Especificações Status Comentário
{{SpecName('HTML WHATWG', 'web-messaging.html#message-channels','Message channels')}} {{Spec2('HTML WHATWG')}}  

Compatibilidade entre os navegadores

{{CompatibilityTable}}
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Suporte Básico 4 {{CompatVersionUnknown}} {{CompatGeckoDesktop(41)}} 10.0 10.6 5
Disponivel em workers {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop(41)}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Suporte Básico 4.4 4 {{CompatVersionUnknown}} {{CompatGeckoMobile(41)}} {{CompatVersionUnknown}} 10.0 11.5 5.1
Disponivel em workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoMobile(41)}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

Veja também