private-user-1e9
通知
サーバーの 1 つのイベントが、ユーザーが開いているすべての面に届きます。
ユースケース
チャットルームは presence チャンネルです。メンバーシップはチャンネルから得られるもので、あなたが同期し続けるテーブルからではありません。メッセージはイベントであり、入力中の表示はあなたのサーバーに触れることすらありません。
履歴はデータベースの仕事であって、チャンネルの仕事ではありません。参加したクライアントが受け取るのはそれ以降のものです。過去の分は HTTP で読み込んでください。
const room = pusher.subscribe('presence-room-42')room.bind('pusher:subscription_succeeded', (members) => { renderMemberList(members)})room.bind('pusher:member_added', (m) => addMember(m))room.bind('pusher:member_removed', (m) => removeMember(m))room.bind('message', (msg) => appendMessage(msg))// Ephemeral, straight between subscribers.input.oninput = () => room.trigger('client-typing', { at: Date.now() })公式の Pusher ライブラリを、手を加えずに使って書いています。インストールする PushCaster 製のパッケージはありません。 ドキュメント全文
サーバーの 1 つのイベントが、ユーザーが開いているすべての面に届きます。
ポーリングで取りにいくのではなく、変わったそばから送る。
メンバーシップを追跡できる、共有の文書・キャンバス・カーソル。