問題タブ [asgi]
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.
python - グループとチャネル レイヤーは、例外を発生させずにプロセスを停止させます
この非常に単純な作業コード サンプルから始めます。
JavaScript からこの websocket コンシューマーに接続すると、これは期待どおりに機能します。接続は適切に発行され、次のログが取得されます。
ここで、グループを使用するために、コードを次のコードに変更すると:
次に、接続が失敗します。JavaScript コンソールに次のように表示されます。
サーバーログは次のようになります。
ただし、サーバー側では例外は発生しません。
グループを使用せずに同様の動作を取得することもできます。もう少し大きな作業コード サンプルを見てみましょう。
このコードは正常に動作し、接続は適切に発行され、サーバー ログは次のとおりです。
しかし、コードに次の小さな変更を加えると:
次に、接続は適切に発行されますが、すぐに閉じられ、「three」を出力する機会がないままプロセスが停止し、関数「foobar_send」も実行されません。
例外も発生しないのに、「three」が出力されない理由がわかりません。これは、?self.channel_layers.send()
の呼び出し元によって例外が発生し、サイレントにキャッチされることを意味します。IsacomptaManagementFeesConsumer.connect()
最後の段落を書いた後、試してみることにしました。
それだけです。隠れた「ファイルが見つかりません」というエラーがあります。
Channels 2.4.0 および channels-redis 2.4.2 で Django 3.0 を使用しています。ここに私の CHANNEL_LAYERS 設定があります: