Bayeux プロトコル、CometD、および long polling
ストリーミング API は、long polling に Bayeux プロトコルと CometD を使用します。
- Bayeux は、主に HTTP を介して非同期メッセージを伝送するためのプロトコルです。
- CometD は、Comet と呼ばれる AJAX プッシュ技術パターンを使用する、拡張性のある HTTP ベースのイベントルーティングバスです。Bayeux プロトコルを実装します。Salesforce サーバでは、バージョン 2.0 の CometD が使用されます。
- long polling は Comet プログラミングとも呼ばれ、サーバからクライアントへの情報プッシュのエミュレーションを可能にします。通常のポーリングと同様、クライアントがサーバに接続し、サーバに情報を要求します。ただし、使用できる情報がない場合は空の応答を送信するのではなく、サーバが要求を保留して、情報が使用できるようになるまで (イベントが発生するまで) 待機します。情報が使用できるようになると、サーバは完全な応答をクライアントに送信します。クライアントは情報を受け取るとすぐに、次の情報を再要求します。クライアントは、サーバへの接続を継続して維持するため、常に応答の受信を待機しています。サーバがタイムアウトした場合は、クライアントは再接続し、最初からやり直します。
long polling、Bayeux、CometD の知識がない場合は、次のリソースを確認してください。
- CometD ドキュメント: www.cometd.org/documentation
- Bayeux プロトコルドキュメント: www.cometd.org/documentation/bayeux
- Bayeux プロトコル仕様: www.cometd.org/documentation/bayeux/spec
ストリーミング API は、次の CometD メソッドをサポートします。
| メソッド | 説明 |
|---|---|
| connect | クライアントがサーバに接続します。 |
| disconnect | クライアントがサーバから切断します。 |
| handshake | クライアントがサーバとのハンドシェイクを実行し、long polling 接続を確立します。 |
| subscribe | クライアントが PushTopic で定義されたチャネルに登録します。登録が終わると、クライアントはそのチャネルからメッセージを受信できます。チャネルに登録する前に、handshake メソッドのコールが成功している必要があります。 |
| unsubscribe | クライアントがチャネルの登録を解除します。 |