django でログインしたユーザーだけの chat をしたいと思っています。
django channels にあるチュートリアルは、1から4まで pipenv で実行し、きちんと動作することを確認しております。
ネット検索にて、「django-channels を使った websocket を用いたチャットアプリの作成」を見つけ、Github からダウンロードして動かしてみたのですが、どうしても web socket が繋がりません。
環境は
linux mint 20.2 cynnamon
です。
python
1CHANNEL_LAYERS = { 2 'default': { 3 'BACKEND': 'channels_redis.core.RedisChannelLayer', 4 'CONFIG': { 5 "hosts": [('redis', 6379)], # デフォルト:繋がらない 6 "hosts": [('127.0.0.1', 6379)], # 繋がるが無限ループ 7 }, 8 }, 9}
デフォルトの"hosts": [('redis', 6379)]にすると以下のように繋がりません。
HTTP GET / 200 [0.16, 127.0.0.1:50358] HTTP GET /room/b024fd92-41c4-421b-982b-53ef1c135314 200 [0.09, 127.0.0.1:50358] WebSocket HANDSHAKING /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:50438] WebSocket DISCONNECT /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:50438]
"hosts": [('127.0.0.1', 6379)]にすると、以下のように connect と disconnect が短時間で無限ループのようになります。
HTTP GET /static/debug_toolbar/js/utils.js 304 [0.00, 127.0.0.1:46070] WebSocket CONNECT /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:46084] WebSocket DISCONNECT /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:46084] HTTP GET /room/b024fd92-41c4-421b-982b-53ef1c135314 200 [0.07, 127.0.0.1:46070] HTTP GET /static/debug_toolbar/js/toolbar.js 304 [0.00, 127.0.0.1:46094] WebSocket HANDSHAKING /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:46096] HTTP GET /static/debug_toolbar/js/utils.js 304 [0.00, 127.0.0.1:46094] WebSocket CONNECT /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:46096] WebSocket DISCONNECT /ws/b024fd92-41c4-421b-982b-53ef1c135314 [127.0.0.1:46096]
参考サイトには「適当に redis サーバを用意したら ./manage.py runserver で起動します。」と書いてあるのですが、その具体的な設定方法がわかりません。
ちなみに「sudo systemctl status redis-server」で確認すると、redis server は active(running)となっています。
また、/etc/redis/redis.conf をいろいろと編集してみたのですが、やはり動きません。
参考サイトのプログラムがあまりにも素晴らしいので、できることなら導入したいのですがどのようにしたらいいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。