この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

メッセージチャネルの購読および購読取り消し

メッセージチャネルの購読および購読取り消しを行うには、sforce.one.subscribe() メソッドと sforce.one.unsubscribe() メソッドを使用します。

次の例は、「メッセージングチャネルでの公開」の例の続きを示しており、それぞれのボタンをクリックしたときにメッセージチャネルの購読および購読取り消しを行うことができます。この JavaScript には、subscribeMC() メソッドと unsubscribeMC() メソッド、および textarea にメッセージ出力を設定する onMCPublished() があります。

カスタム Lightning メッセージチャネル $MessageChannel.SampleMessageChannel__c を変数 SAMPLEMC に読み込みます。$MessageChannel グローバル変数では、関連するメッセージチャネルの一意のトークンが作成されます。SAMPLEMC の下では、sforce.one.subscribe() メソッドから返された購読オブジェクトを保持する変数 subscriptionToMC が宣言されています。

subscribeMC() メソッドでは、購読オブジェクトが空であるかどうかがチェックされます。購読オブジェクトが空の場合は、sforce.one.subscribe() メソッドがコールされます。sforce.one.subscribe() には、購読メッセージチャネルと、メッセージ出力を処理する onMCPublished() メソッドの 2 つのパラメータがあります。同様に、unsubscribeMC() メソッドでは、購読オブジェクトの有無がチェックされます。購読オブジェクトが存在する場合は、sforce.one.unsubscribe() がコールされ、subscriptionToMC オブジェクトに渡されます。次に、subscriptionToMC オブジェクトがクリアされます。

onMCPublished() メソッドでは、JSON オブジェクトのメッセージペイロードが文字列に変換されます。次に、ID が MCMessageTextAreatextarea にメッセージが表示されます。

1<apex:page >
2    <div>
3        <p>Subscribe to SampleMessageChannel </p>
4        <button onclick="subscribeMC()">Subscribe</button>
5        <p>Unsubscribe from subscription</p>
6        <button onclick="unsubscribeMC()">Unsubscribe</button>
7        <br/>
8        <br/>
9        <p>Received message:</p>
10    <textarea id="MCMessageTextArea" rows="10" style="disabled:true;resize:none;width:100%;"/>
11    </div>
12
13    <script>
14        // Load the MessageChannel token in a variable
15        var SAMPLEMC = "{!$MessageChannel.SampleMessageChannel__c}";
16        var subscriptionToMC;
17
18        function onMCPublished(message) {
19            var textArea = document.querySelector("#MCMessageTextArea");
20            textArea.innerHTML = message ? JSON.stringify(message, null, '\t') : 'no message payload';
21        }
22
23        function subscribeMC() {
24            if (!subscriptionToMC) {
25                subscriptionToMC = sforce.one.subscribe(SAMPLEMC, onMCPublished);
26            }
27        }
28
29        function unsubscribeMC() {
30            if (subscriptionToMC) {
31                sforce.one.unsubscribe(subscriptionToMC);
32                subscriptionToMC = null;
33            }
34        }
35    </script>
36
37</apex:page>