PubNub を使用して、単純なリアルタイム メッセージを Web サーバーからクライアントにプッシュするためのシステムをセットアップしようとしています。Heroku で Django を実行しています。
特に、サーバーとクライアントの間でチャネルを確立する方法に興味があります。これには、2 つの間で一意のチャネル ID を共有する必要があります。
私たちのウェブサイトは一種のソーシャル ネットワーキング サイトです。一度に多数のユーザーがログインします。新しいメッセージや友達リクエストなどを受け取ったときに、更新を必要とせずにインターフェイスを更新する方法が必要なだけです。
何をすべきかはわかっていますが、私が知らないベスト プラクティスがいくつかあるのではないかと考えたので、フィードバックを得たいと思いました。
- ログイン時に、クライアントは API エンドポイントに投稿します
- この POST のハンドラー関数は、データベースにこのユーザーのチャネル ID レコードが既に存在するかどうかを確認します。
- その場合は、新しいチャネル ID (UUID) でレコードを更新します。そうでない場合は、このユーザーの ID とチャネル ID を使用して新しいレコードを作成します。
- チャンネル ID をユーザーに返します。
- ログアウトすると、このレコードは削除されます。
技術的には、これが REST の原則に違反しているのではないかと心配しています。API エンドポイントへの 1 回の呼び出しは、POST のようにサーバー側でデータを作成し、GET のようにクライアントにデータを返すように機能します。
関連するベスト プラクティスについてご意見をいただければ幸いです。ありがとう!