見出し画像

SalesforceのLightning Web ComponentでMessage ServiceとPlatform Eventsを使ってみた。

こんにちは、町田(@mcho71)です。
Salesforce上で動く面白いコンポーネントを作ってみたい、ついでにコピペで作っていくうちにSalesforce、Lightning Web Component(以後LWC)を学べるようなアプリ作成チュートリアルを作りたい。
と思い、色々調べています。

Salesforce + LWCでできること、を意識して調べ物をしたところ、以下2つが面白そうかなと思い、動かしてみました。

それぞれどのような動作なのか見てみましょう。


Lightning Message Service

LWC間通信ができます。同ページにあるLWC同士で連携することでリアクティブにLWCの更新ができます。

Message ServiceでLWC間通信

こちらを使用するためには、MessageChannelメタデータの作成と、LWCでメッセージ発行/購読コードを追加する必要があります。
詳しくは Lightning Message Service を使用した DOM 間の通信 - Salesforce Lightning Component Library を参照してください。

Platform Events

Salesforce組織上でイベントの送受信ができます。LWCで使うと、リアルタイムチャットのようなものを簡単に作れます。

Platform Eventsを使ってリアルタイムチャット

こちら使う場合は、プラットフォームイベントを作成し、Apexによるイベントの発行、LWCでイベント購読が必要になります。

詳しくは以下を参照してみてください。

これから何を作るか

グラフィック系の見栄えのするものがいいかなと思いつつ、ChatGPTに相談してみたり。以下ChatGPTが上げたアイディアです。

  • クイズゲームシステム: 複数のコンポーネントを使用して、Salesforce内でクイズゲームシステムを作成します。一つのコンポーネントでクイズの質問を表示し、他のコンポーネントで回答の選択肢やスコアを管理します。ユーザーが回答すると、結果を表示したり次の質問に進んだりする仕組みです。

  • カスタムトリビアトランプ: カード型のコンポーネントを使用して、カスタムトリビアトランプを作成します。各カードにはトリビアの質問や情報が含まれており、ユーザーはカードをめくって問題を解いたり情報を表示したりします。

  • ミュージックプレーヤー: LWCコンポーネントを使用して、Salesforce内でミュージックプレーヤーを作成します。一つのコンポーネントで曲のプレビューや再生コントロールを表示し、他のコンポーネントでプレイリストや再生履歴を管理します。

  • 映画レビューアプリ: 複数のコンポーネントを使用して、Salesforce内で映画レビューアプリを作成します。一つのコンポーネントで映画のリストや評価を表示し、他のコンポーネントでレビューやコメントの投稿、評価の集計を行います。

  • ランキングバトルゲーム: LWCコンポーネントを使用して、Salesforce内でランキングバトルゲームを作成します。ユーザーがキャラクターやアイテムを選択し、他のユーザーとのランキングバトルを行います。ランキングや成績の表示、バトル結果の詳細表示などをコンポーネント間で連携させます。

結構面白そうなアイディアを上げてくれました。

こんな感じで、Salesforce上で動く、面白いコンポーネントを作るチュートリアルを作っていこうと思います。


この記事が気に入ったらサポートをしてみませんか?