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

汎用ストリーミングの概要

汎用ストリーミングでは、ストリーミング API を使用して、Salesforce データの変更に関連付けられていない一般イベントの通知を送信します。
指定するカスタムイベントに基づいて通知を送受信する場合は、汎用ストリーミングを使用します。汎用ストリーミングは、次に挙げるような、カスタム通知を送信する必要があるすべての状況で使用できます。
  • 特定のチームまたは組織全体に通知を送信する
  • Salesforce の外部で発生するイベントの通知を送信する
汎用ストリーミングを使用するには、以下が必要です。
  • チャネルを定義する StreamingChannel (大文字と小文字を区別する名前)
  • チャネルに登録された 1 つ以上のクライアント
  • チャネルの転送イベントを監視および呼び出すことができる Streaming Channel Push REST API リソース

デュラブル汎用ストリーミングを使用した汎用ストリーミングイベントの再生

クライアントはチャネルに登録した後に、Salesforce セッションが有効である限り汎用ストリーミングイベントを受信できます。クライアントがチャネルに登録する前、または登録済みクライアントが Salesforce セッションから切断された後に送信されたイベントは欠落します。ただし、API バージョン 36.0 以降、クライアントはデュラブル汎用ストリーミングを使用して、24 時間の保持期間内の欠落イベントを取得できます。

登録者は、保管期間内や特定のイベント後のすべてのイベントなど、受信するイベントを選択できます。デフォルトでは、登録後に送信された新規イベントのみを受信します。ストリーミング API では、イベントフレームワークを使用してイベントプロデューサをイベントコンシューマから分離します。そのため登録者は、送信時にイベントをリスンするだけではなく、いつでもイベントを取得できます。イベントは 24 時間の保管期間を過ぎると破棄されます。

API バージョン

イベントの再生は、API バージョン 36.0 以降でサポートされています。

イベント採番

各ブロードキャストイベントには、数値の ID が割り当てられます。ID は順次増分されますが、連続するイベントに連番が振られるという保証はありません。たとえば、ID 999 のイベントの次のイベントの ID が 1,025 になることもあり得ます。ただし、各 ID がその前のイベントの ID よりも大きいことは保証されます。ID は組織およびチャネルで一意です。削除されたイベントの ID は再利用されません。

ID は、通知メッセージの replayId 項目に追加されます。たとえば、次の JSON メッセージはイベントオブジェクトの replayId 項目を示します。

1{
2 "clientId":"a1ps4wpe52qytvcvbsko09tapc",
3 "data":{
4    "event":{
5            "createdDate":"2015-11-13T19:05:28.334Z",
6            "replayId":55
7        },
8    "payload":"This is a message."
9    },
10 "channel":"/u/TestStreaming"
11}
API バージョン 36.0 では、createdDate 項目値の時刻形式も、Salesforce アプリケーションで使用される時刻形式と同じになるように変更されます。時刻部分の末尾は、+0000 ではなく、Z サフィックスになり���した。どちらのサフィックスも UTC タイムゾーンで表されます。

イベントの再生

次の図は、イベントのストリームの概要と、イベントコンシューマがさまざまな再生オプションを使用してイベントを読み取る方法を示しています。

再生オプションを使用したイベントのストリームを示す図
表 1. 再生オプション
再生オプション 説明
再生 ID 登録者は、replayId 値で指定されたイベント後のすべてのイベントを受信します。
-1 登録者は、クライアントの登録後にブロードキャストされた新規イベントを受信します。
-2 登録者は、すべてのイベントを受信します。これには、24 時間の保管期間内の過去のイベントと、登録後に送信された新規イベントが含まれます。

イベントを再生するには、次のエンドポイントを使用します。

1https://Salesforce_Instance/cometd/replay/36.0/
再生メカニズムは、Salesforce が提供する、cometdReplayExtension と呼ばれる CometD 拡張で実装されます。この拡張を登録し、setReplay() 関数をコールします。次の例では、JavaScript で拡張を登録しています。
1// Register streaming v2 extension
2var replayExtension = new cometdReplayExtension();
3replayExtension.setChannel(<Streaming Channel to Subscribe to>);
4replayExtension.setReplay(<Event Replay Option>);
5cometd.registerExtension('myReplayExtensionName', replayExtension);
  • setReplay() に渡される引数は、デュラブル汎用ストリーミングに記載された再生オプションの 1 つです。
  • registerExtension() に渡される最初の引数は、コードの再生拡張の名前です。この例では myExtensionName に設定されていますが、任意の文字列にもできます。後で拡張を登録解除する場合は、この名前を使用します。
  • setReplay() 関数がコールされない場合、または CometD 拡張が登録されない場合、新規イベントのみが登録者に送信されます (-1 オプションと同じ)。

メモ

拡張に対して setReplay() 関数をコールすると、その後で登録者が受信するイベントは setReplay() に渡された再生値パラメータに依存します。

コードサンプル

汎用ストリーミングイベントの再生方法のコードサンプルは、「例: Visualforce ページを使用した汎用ストリーミングイベントの再生」を参照してください。