本文へスキップ

ユースケース

ライブなアプリケーション状態

リアルタイムの大半はチャットではありません。終わったジョブ、出荷された注文、赤くなったビルド。誰かが古い写しを見ている間に変わった状態のことです。

private-job-7c4
  • private チャンネル
  • イベント

どう動くか

  1. 01そのリソースを subscribe する画面にあるものの名前をつけた private チャンネル。ジョブ、注文、デプロイなど。
  2. 02遷移を publish する確定した状態変化ごとに、新しい状態とともに publish します。
  3. 03収束するクライアントがそれを適用します。遷移を取りこぼしたクライアントは、再接続時に HTTP で読み直します。

知っておきたいこと

書き込みが確定してから publish してください。先に publish すると、トランザクションが巻き戻ったときにデータベースが認めない状態を見せることになります。

コードで見る

job.js
js
// Publish the transition after it is committed, not before.await job.markComplete()await pusher.trigger(`private-job-${job.id}`, 'state-changed', {  state: 'complete',  finished_at: job.finishedAt.toISOString(),})

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

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

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

通知

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

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

Support