files/en-us/web/api/audioworklet/port/index.md
{{APIRef("Web Audio API")}}{{SeeCompatTable}}
The port read-only property of the {{domxref("AudioWorklet")}} interface returns a {{domxref("MessagePort")}} object that can be used to send and receive messages between the main thread and the associated {{domxref("AudioWorkletGlobalScope")}}.
This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as receiving control data or global settings.
The {{domxref("MessagePort")}} object connecting the AudioWorklet and its associated AudioWorkletGlobalScope.
See AudioWorkletNode.port for more examples.
In the following example, we can use port.onmessage to receive data and port.postMessage to send data:
const context = new AudioContext();
// Load the module that contains worklet code
await context.audioWorklet.addModule("processor.js");
// Listener for messages from AudioWorkletGlobalScope
context.audioWorklet.port.onmessage = (event) => {
console.log("Message from global worklet:", event.data);
};
// Set a global config, for example:
context.audioWorklet.port.postMessage({
volume: 0.8,
});
{{Specifications}}
{{Compat}}
AudioWorklet