問題タブ [django-channels]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - クライアントがメッセージを受信していないnginxのDjangoチャネル
channels パッケージを使用し、正常に動作するアプリがあります... localhost で。ステージングを開始してnginx
(SSL を使用して) Django の前にボックスを配置するとすぐに、ソケットに接続できますが、クライアントはメッセージを受信しません。
Nginx 設定:
Django は gunicorn で動作し、websocket 用に daphne サーバーを立ち上げました。クライアントが接続していることを daphne ログで確認できますが、それでも daphne からクライアントへのメッセージは受信されません。
Daphne は、nginx が通信するために取得する UNIX ソケットを作成しています。
daphne main.asgi:channel_layer -u /tmp/daphne.sock
python - channels.asgi.InvalidChannelLayerError: デフォルトに BACKEND が指定されていません
django アプリにチャネルを使用しようとしています。必要な依存関係をすべてインストールしました (と思います)。myapp/settings.py の INSTALLED_APPS に「チャネル」をリストしました。ただし、daphne ( daphne chat.asgi:channel_layer --port 8888
)-(cmd でエラー メッセージなし) を実行するpython manage.py runworker
と、「channels.asgi.InvalidChannelLayerError:デフォルトで BACKEND が指定されていません」。. 私はdjangoの初心者です。asgi.pyを持っています
しかし、myapp/settings.py で、デフォルトに指定された BACKEND を指定しました。このエラーの解決策を提案していただけますか? これが考えられる解決策ですが、asgi_redis は私の django1.10 で最新のものでした。ローカル マシンで myapp を実行しようとしています。
python - django-channels でメッセージが失敗したかどうかを確認する方法
プロジェクトでチャネルを使用しているため、django で websocket を使用するようになり、セットアップと使用が非常に簡単になりました。
私のアプリケーションでは、ログインするすべてのユーザーがグループを開き、アクティビティがある場合に情報を送信できます。
そのユーザーにメッセージを送信したいときはいつでも使用します
ただし、エラーがある場合、これは黙って失敗します。したがって、問題は、データをより適切に処理するためにデータを送信する前であっても、失敗したかどうか、またはグループが存在するかどうか (ライブまたはリスニング) を確認する方法があるかどうかです。
python - AWS Elastic Beanstalk で Django チャネルを使用して WebSocket を設定する
AWS インスタンスで WebSockets をセットアップしようとしています。私は Web アプリケーションに Django を使用しているため、WebSocket のサポートにはDjango Channelsを使用します。AWS Elastic Beanstalk を使用してアプリをデプロイしましたが、次のエラーが表示されます。
「ws://xxx.elasticbeanstalk.com/」への WebSocket 接続に失敗しました: WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 200.
いくつかの調査の結果、HTTP と HTTPS の代わりにポート 80 で TCP を設定し、443 で SSL を設定する必要があることがわかりましたが、変更しなくてもエラーが発生します。また、複数のアベイラビリティーゾーン間で負荷分散を無効にしましたが、成功しませんでした。
WSGIPath
Daphine と Channels で使用される ASGI は設定していないため、EB 構成ファイルが問題を引き起こすかどうかはわかりません。ASGIPath
これを試すタグはありません。
新しいApplication Load Balancerに関する記事を見つけましたが、かなり新しいサービスであるため、Django を使用した WebSocket に関するものは見つかりませんでした。Django Channels も新しいので、それに関する質問や投稿も多くありません。
python - 別の (インポートされた) ミドルウェア クラスのメソッドで変数を呼び出して定義する方法は?
私はチャンネルを試しているdjango1.10のペットプロジェクトに取り組んでいます。私はミドルウェアを持っていて、それを myapp にインポートしてフックしたいと考えています。私はまだpythonとdjangoを把握しているので、ミドルウェアクラスSessionMiddlewareをchannels/sessions.pyにフックする方法について助けていただければ幸いです。
ミドルウェアに関連するコードは次のとおりです。
channels/sessions.py は次のとおりです。
基本的な python クラス/関数のインポートの理解が必要な質問は些細なことかもしれません。モジュールとクラス SessionMiddleware をインポートできました。「ip」、「user_agent」、および「session_key」をチャネルのグローバル変数として定義しようとしました/ sessions.py (エラーが発生したため、おそらく何かが欠落しています):
NameError:名前 'user_agent' が定義されていません。
` #Make a session storage in channels/sessions.py の if ステートメントで 'session' を割り当てようとすると:
session =session_engine.SessionStore(session_key=session_key,user_agent=user_agent,ip=ip)
次のことを理解するのが困難です。2. これらのパラメーターを channels/sessions.py でグローバル スコープにする方法を教えてください。
python - django チャネルのルーティング エラー
django-channels でチャット アプリケーションを実行していますが、奇妙なルーティング エラーが発生します。
ここに私のrouting.pyがあります
/chatwindow リンクをたどって通常のビューを使用し、チャット アプリケーションをアンロードしたいのですが、うまくいきません。
django - Django Channels HttpClient テスト エラー
チャンネルのマルチチャット サンプル プロジェクトのコンシューマーの 1 つのテストを作成しようとしています: https://github.com/andrewgodwin/channels-examples/tree/master/multichat。コンシューマー関数は次のようになります。
さて、私が遭遇し続けた興味深いエラーは次のようになります。テスト関数バージョン 1 では:
テストでは、次のエラーが表示されます。
テスト関数バージョン 2:
テストはメッセージを正しいコンシューマーに正常にルーティングできるようになりましたが、ユーザー認証のために続行できません。
私の質問は次のとおりです。
HttpClient.send
1) と を別々に呼び出すと、を呼び出すのとHttpClient.consume
は異なる動作が生じるのはなぜですかHttpClient.send_and_consume
。私はsend_and_consume関数を見て、私がやったようにsendとconsumeを別々に呼び出しているだけです。
2) ユーザー ログイン エラーが発生しないようにするにはどうすればよいですか?