公式サイトから Phoenix Channel と Presence Documentation をたどりました。説明されているように、物事はうまく機能します。
チャンネルのドキュメントとして、クライアントが特定のトピックに参加したときに何かを処理できるように、参加コールバックがあります。しかし、存在すべきだと思うままのコールバックがないのはなぜですか?
私はいくつかをググったところ、プレゼンスを使用してクライアントのステータスを追跡できることがわかりました。どちらも機能しましたが、実際にクライアントに通知する必要はありません。Channel の handle_out コールバックで present_diff イベントをキャッチしようとすると、クライアントの数だけ複数回呼び出されました。
プレゼンスのドキュメントにあるように...
プロセスの追跡など、Phoenix.Presence によって提供される機能のサブセットのみを使用したいが、更新をブロードキャストしない場合は、phoenix_pubsub プロジェクトの Phoenix.Tracker 機能を参照することをお勧めします。
ただし、Phoenix.Tracker には最初に :pubsub_server プロパティが必要です。
ここでまた質問です。
- Phoenix.Channel が leave のようなコールバックを実装しない理由。
- 特定のトピックのクライアント ステータス (参加/退出) を処理するにはどうすればよいですか?
前もって感謝します。