Newer Version Available

This content describes an older version of this product. View Latest

Publish on a Message Channel

To publish a message on a message channel, include a lightning:messageChannel component in your Aura component and use the publish() method in your Aura component's controller file.

This example shows how to publish a message on the SampleMessageChannel__c channel when a button is clicked.

In myComponent.cmp, we create two components, lightning:button and lightning:messageChannel. On lightning:button, the onclick handler calls the handleClick() JavaScript function in the controller.

1<!-- myComponent.cmp -->
2<aura:component>
3    <lightning:button onclick="{! c.handleClick }"/>
4    <lightning:messageChannel type="SampleMessageChannel__c"
5        aura:id="sampleMessageChannel"/>
6</aura:component>
1// myComponentController.js
2({
3    handleClick: function(cmp, event, helper) {
4        var payload = {
5            recordId: "some string",
6            recordData: {
7                value: "some value"
8            }
9        };
10        cmp.find("sampleMessageChannel").publish(payload);
11    }
12})

In the controller, handleClick() contains the payload object. This object holds the message that gets sent on the SampleMessageChannel__c message channel. Here, the message is a recordId with the value "some string" and recordData, whose value is the key-value pair value: "some value". Then, the controller finds the lightning:messageChannel component referenced in myComponent.cmp and calls publish() with the payload.