09. 入退室ユーザー名、参加人数の表示
ユーザーの入室/退室に際して、入退室ユーザー名、参加人数が表示されるようにします。
解説
ユーザーの入室/退室に際して、入退室ユーザー名、参加人数が表示されるように、ChatConsumerクラスのチャット参加時/チャット離脱時の処理に、システムメッセージとして、入退室ユーザー名、参加人数を送信する処理を追加します。
準備
08. を実施していない場合は、まず、08. を実施します。
仮想環境への切り替え
仮想環境に切り替えていない場合は、「MyChat」フォルダにて、下記コマンドを実行し、仮想環境に切り替えます。
「mysite」フォルダに移動していない場合は移動します。
これ以降のコマンドの実行は、仮想環境にて実行します。
ChatConsumerクラスの変更
ChatConsumerクラスのチャット参加時/チャット離脱時の処理に、システムメッセージとして、入退室ユーザー名、参加人数を送信する処理を追加します。
「mysite/chat/consumers.py」に、以下の変更を加えます。
- システムメッセージのユーザー名定数を定義します。
- ルーム管理用のクラス変数の定義を追加します。
- コンストラクタに、クラス変数の初期化処理を追加します。
- 「チャットへの参加」関数に、参加者数の更新、システムメッセージの作成、作成したメッセージの拡散送信、の処理を追加します。
- 「チャットからの離脱」関数に、参加者数の更新、システムメッセージの作成、作成したメッセージの拡散送信、参加者がゼロのときはルーム管理からルームの削除、の処理を追加します。
「mysite/chat/consumers.py」の内容を以下のようにします。
動作確認
「mysite」フォルダにて、下記コマンドを実行し、サーバーを起動します。
ブラウザを複数立ち上げ、「http://127.0.0.1:8000」にアクセスします。
チャットに参加し、メッセージを送信したり、チャットから離脱したり、します。
ユーザーの入室/退室に際して、入退室ユーザー名、参加人数がシステムメッセージとして表示されます。
起動したサーバーは、「Ctrl + C」で終了します。
ダウンロード
デモ
デモ(Heroku):https://mychat-django.herokuapp.com/