ホーム > プログラミング > Webチャットアプリを作る > 04. Redisの有効化

04. Redisの有効化



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

解説

Redisを有効化するために、すべきことは以下です。

  1. WebsocketConsumerクラスの実装クラスを作成します。 ( consumers.py )
  2. ルーティングのコードを追加します。 ( routing.py )
  3. Redisのインストールし、起動します。
  4. チャンネルレイヤーを設定します。 ( settings.py )

準備

03. を実施していない場合は、まず、03. を実施します。

仮想環境への切り替え

仮想環境に切り替えていない場合は、「MyChat」フォルダにて、下記コマンドを実行し、仮想環境に切り替えます。


「mysite」フォルダに移動していない場合は移動します。


これ以降のコマンドの実行は、仮想環境にて実行します。

WebSocket Consumerの実装クラスの作成

WebSocketについての処理を受け持つWebSocket Consumerの実装クラスとしてChatConsumerクラス作成します。

「mysite/chat」フォルダに、「consumers.py」というファイルを作成します。
フォルダ/ファイルの構成は以下です。


WebSocketの動作確認用の最低限のコードを記述します。
「consumers.py」の内容を以下のようにします。

ルーティングのコードの追加

作成したConsumerへのルーティングのコードを追加します。

「mysite/chat」フォルダに、「routing.py」というファイルを作成します。
フォルダ/ファイルの構成は以下です。


「routing.py」の内容を以下のようにします。


続いて、プロジェクトの「asgi.py」ファイル(「mysite/mysite/asgi.py」ファイル)に、以下の変更を加えます。

「mysite/mysite/asgi.py」の内容を以下のようにします。

Redisのインストールと起動

Channelsのチャンネルレイヤーは、Redisをバックストアとして使用します。

Windowsの場合

WindowsでRedisを使用する場合は、「Memurai」というソフトウェアをインストールします。
(「Redis on Windows」というソフトウェアもありますが、「Redis on Windows」のウェブサイトには、「このプロジェクトはもうメンテナンスされていません。『Memurai』をチェックしてみては」と書かれています。)

「Memurai」のサイトにアクセスし、インストーラーをダウンロードします。
「Developer Edition」は無料で使用することができます。
(「Developer Edition」は無料で使用することができますが、10日ごとにリスタートする必要があります)

「Memurai」をインストールします。
・「環境変数のPATHにRedisのパスを追加する」はチェックを入れます。
・「Radisのポート番号をWindowsのファイアーウォールの例外に追加する」はチェックを入れます。

「Memurai」をインストールすると、「Memurai」はWindowsのサービスとして起動します。

クラウド、Linux、Macの場合

Redisのインストール方法をネット検索にて、「Redis インストール (クラウド名、LinuxOS名、Mac)」等で調べ、Redisをインストールし、起動します。

チャンネルレイヤーの設定

Channelsのチャンネルレイヤーのバックストアの設定を追加します。

「mysite/mysite/settings.py」の最下部に、チャンネルレイヤーの設定を追加します。

動作確認

「mysite」フォルダにて、下記コマンドを実行し、Djangoシェルを起動します。

以下のコードを実行します。



{'type': 'hello'}
と表示されます。

「exit()」と入力し、Djangoシェルを終了します。

ダウンロード

サンプルプログラム

関連ページ

前項目:03. Channelsパッケージの有効化

次項目:05. チャットメッセージの送受信


ご意見、ご感想、ご質問、ご要望等は、「コメントを投稿する」もしくは「ホーム > コンタクト」よりお願いいたします。
内容の誤り、誤字脱字、リンクミスなどの問題点を発見された場合には「コメントを投稿する」もしくは「ホーム > コンタクト」より連絡していただけると幸いです。


Copyright (c) 2005-2018 Nobuki HIRAMINE All rights reserved.