Webチャットアプリを作る ( Django + Channels )

Django と Channels を用いて、Webチャットアプリを作成する方法を解説します。

Django は、Pythonで実装されたWebアプリケーションフレームワークです。Django を利用するとWebアプリケーションを簡単に作成することができます。
Channelsは、DjangoでWebSocketの送受信を可能とするPythonパッケージです。Channelsを利用するとWebSocketを使用したWebアプリケーションを簡単に作成することができます。

使用開発環境は、以下です。
Python : version 3.8.6
Django : version 3.1.4
Channels : version 3.0.2
channels-redis : version 3.2.0

01. Djangoプロジェクトの作成
Python の仮想環境を作成します。Python のパッケージをインストールします。Djangoプロジェクトを作成します。

02. チャットページの表示
チャットページの表示をできるようにします。チャットメッセージの送受信はまだできません。

03. Channelsパッケージの有効化
WebSocketの送受信を可能とするモジュールである Channelsパッケージを有効化します。

04. Redisの有効化
Channelsのチャンネルレイヤーがバックストアとして使用するRedisを有効化します。

05. チャットメッセージの送受信
チャットメッセージの送受信ができるようにします。

06. WebSocket Consumer の処理の非同期処理化
パフォーマンスを向上させるために、WebSocket Consumerの処理を、同期ではなく非同期の処理に書き換えます。

07. メッセージに発言者名の追記
メッセージに発言者名が追記されるようにします。

08. チャットルームに分かれてチャット
チャットルームに分かれてチャットができるようにします。

09. 入退室ユーザー名、参加人数の表示
ユーザーの入室/退室に際して、入退室ユーザー名、参加人数が表示されるようにします。
デモ(Heroku):https://mychat-django.herokuapp.com/

参考