本文へスキップ

ユースケース

アクティビティとイベントのフィード

監査ログ、注文の流れ、障害のタイムライン。形はどれも一つです。追記だけされ、誰かが見ているリスト。HTTP で読み込み、イベントで最新に保ちます。

private-account-3b1
  • private チャンネル
  • イベント
  • webhook

どう動くか

  1. 01読み込んでから subscribe するページを HTTP で取得し、それから subscribe します。この順序なら、すき間に何も落ちません。
  2. 02publish されたら追記する新しい項目は HTTP のペイロードと同じ形なので、描画は一つで両方をまかなえます。
  3. 03チャンネルで範囲を絞るアカウントごとにチャンネルを 1 つにすれば認可は単純になります。サブスクリプションそのものが検査になります。

知っておきたいこと

再接続したクライアントにはすき間があります。ソケットがすべて拾えたと決めてかからず、フィードの先頭を取り直してください。

コードで見る

feed.js
js
const feed = await fetch('/api/activity?limit=50').then((r) => r.json())render(feed.items)// Same shape as the HTTP payload, so one renderer covers both.pusher.subscribe('private-account-3b1').bind('activity', (item) => {  prepend(item)})

公式の Pusher ライブラリを、手を加えずに使って書いています。インストールする PushCaster 製のパッケージはありません。 ドキュメント全文

ほかにこんなものが作られています

すべてのユースケース
private-user-1e9

通知

サーバーの 1 つのイベントが、ユーザーが開いているすべての面に届きます。

アプリケーションを作って、これを作りましょう。

Support