問題タブ [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.

0 投票する
2 に答える
4437 参照

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

0 投票する
1 に答える
2012 参照

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 を実行しようとしています。

0 投票する
0 に答える
757 参照

python - django-channels でメッセージが失敗したかどうかを確認する方法

プロジェクトでチャネルを使用しているため、django で websocket を使用するようになり、セットアップと使用が非常に簡単になりました。

私のアプリケーションでは、ログインするすべてのユーザーがグループを開き、アクティビティがある場合に情報を送信できます。

そのユーザーにメッセージを送信したいときはいつでも使用します

ただし、エラーがある場合、これは黙って失敗します。したがって、問題は、データをより適切に処理するためにデータを送信する前であっても、失敗したかどうか、またはグループが存在するかどうか (ライブまたはリスニング) を確認する方法があるかどうかです。

0 投票する
0 に答える
1315 参照

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 を設定する必要があることがわかりましたが、変更しなくてもエラーが発生します。また、複数のアベイラビリティーゾーン間で負荷分散を無効にしましたが、成功しませんでした。

WSGIPathDaphine と Channels で使用される ASGI は設定していないため、EB 構成ファイルが問題を引き起こすかどうかはわかりません。ASGIPathこれを試すタグはありません。

新しいApplication Load Balancerに関する記事を見つけましたが、かなり新しいサービスであるため、Django を使用した WebSocket に関するものは見つかりませんでした。Django Channels も新しいので、それに関する質問や投稿も多くありません。

0 投票する
0 に答える
190 参照

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 でグローバル スコープにする方法を教えてください。

0 投票する
0 に答える
813 参照

python - django チャネルのルーティング エラー

django-channels でチャット アプリケーションを実行していますが、奇妙なルーティング エラーが発生します。

ここに私のrouting.pyがあります

/chatwindow リンクをたどって通常のビューを使用し、チャット アプリケーションをアンロードしたいのですが、うまくいきません。

0 投票する
1 に答える
171 参照

django - Django Channels HttpClient テスト エラー

チャンネルのマルチチャット サンプル プロジェクトのコンシューマーの 1 つのテストを作成しようとしています: https://github.com/andrewgodwin/channels-examples/tree/master/multichat。コンシューマー関数は次のようになります。

さて、私が遭遇し続けた興味深いエラーは次のようになります。テスト関数バージョン 1 では:

テストでは、次のエラーが表示されます。

テスト関数バージョン 2:

テストはメッセージを正しいコンシューマーに正常にルーティングできるようになりましたが、ユーザー認証のために続行できません。

私の質問は次のとおりです。

HttpClient.send1) と を別々に呼び出すと、を呼び出すのとHttpClient.consumeは異なる動作が生じるのはなぜですかHttpClient.send_and_consume。私はsend_and_consume関数を見て、私がやったようにsendとconsumeを別々に呼び出しているだけです。

2) ユーザー ログイン エラーが発生しないようにするにはどうすればよいですか?