問題タブ [daphne]

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 投票する
3 に答える
3923 参照

python - Django Channels ソケットへのログインが必要ですか?

Django 1.10 で Channels を試し、いくつかのコンシューマーをセットアップしています。

ゲストがこのプライベートソケットに入るのを防ぐために、接続を実行する前に接続を閉じる login_required デコレーターを作成してみました。また、後でユニットテストを統合してテストしましたが、ゲストを入れ続けているため失敗し続けています(どこでもAnonymousUserエラー)。

また、ログインおよびログアウト時にセッションがクリアされず、古いユーザーがログインできる場合があります。

デコレータ:

消費者コードは次のとおりです。

奇妙なことに、 client.send(signal.message)) 転送間のすべてのロジックをコメントアウトすると、正常に機能し、単体テストに合格します (ゲストがブロックされ、認証コードが実行されないことを意味します [したがって AnonymousUser エラー])。何か案は?

ここにもテストがあります:

私はこれに間違って近づいていますか?もしそうなら、どうすればこれを適切に行うことができますか(認証が必要ですか?)

編集: 何かを試すためにアクション システムを統合しました。Django チャネルが HTTP からセッションをまったく取得していないようです。

false を返すだけです。

EDIT2: 動作するようになりました。localhost を 127.0.0.1 に変更してみましたが、動作することがわかりました。localhost を有効なドメインとして検出して、セッションを移植する方法はありますか?

EDIT3: localhost と 127.0.0.1 の Cookie の問題が見つかりました。報奨金を無駄にしないために、メッセージ/チャネルに auth login_required を個人的にどのように実装しますか?

edit4:なぜうまくいかなかったのかはまだわかりませんが、最終的に問題を回避してアプリを変更した方法は次のとおりです。

アクションシステムを作成しました。入力すると、JSON を介して AUTHENTICATE アクションを送信するまで、ソケットは何もしません。ログインしたアクションをguest_actionsとuser_actionsに分けました。認証されると、セッションが設定され、user_actions を使用できるようになります。

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

django - Nginx + daphne WebSocket接続が受信しない

daphne が django チャネルを使用するためのリバース プロキシとして nginx を使用します。

ここに私のnginx.confがあります

ダフネのログ:

しかし、クライアント側でのWebSocketの接続はメッセージを受け取りません

手伝って頂けますか?

アップデート:

クライアント側のコード (私は Swift で WebSocket 接続に Starscream ライブラリを使用しています):

ルーティング.py:

消費者.py:

res_user から: https://gist.github.com/leonardoo/9574251b3c7eefccd84fc38905110ce4