SaaSにリアルタイム更新を、ホスト型のリアルタイムサービスなしで
最終更新:
Seedは、保存された変更を自前のAPIからWebSocketで、グループの開いているすべてのタブに送ります。あるウィンドウで保存したメモは、再読み込みなしで1秒以内にほかのウィンドウにも表示されます。自分のサーバーで動くので、料金のかかるリアルタイムサービスは不要です。追加した機能も、メモの例をコピーすればこの仕組みを使えます。
- 標準のWebSocketで、すべての変更に連番付き
- スリープから復帰したタブは再接続し、見逃した分を取得
- リアルタイムはオフにもできます。その場合アプリは一定間隔でポーリングし、同じように動きます
各書き込みはグループの次の連番とともにコミットされ、APIはそれを各メンバーの開いているソケットに送ります。タブが変更を適用するのは、その番号が手元の最後の番号の次であるときだけです。番号が飛んでいれば、カーソル以降のすべてをサーバーに問い合わせるので、メッセージが1つ失われてもリクエストが1回増えるだけで、リストが間違うことはありません。
スリープから復帰したノートPCは再接続し、見逃した分を取得します。ソケットをオフにすると、アプリはHTTPで読み書きし、30秒ごとに変更を確認します。

Seedはリアルタイムで更新されますか?
はい。保存した変更は、再読み込みなしで1秒以内に、グループの開いているすべてのタブに表示されます。
PusherやAblyなどのリアルタイムサービスは必要ですか?
いいえ。WebSocketは、自分のサーバー上でSeed自身のAPIが提供します。
ノートPCがスリープしたあと、タブは追いつきますか?
はい。再接続して、手元にある最後の変更以降のすべての変更を取得します。
リアルタイムをオフにできますか?
はい。SPA_REALTIME=falseを設定してください。アプリは30秒ごとに変更を確認するようになり、同じように動きます。