問題タブ [flask-socketio]

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

javascript - Websocketsの「無効なフレームヘッダー」エラーFlask-Socket IO

私はフラスコソケティオを使用しており、すべてがうまく機能しますが、エミットを使用して1つの値を送信すると、クロム開発者ツールにエラーが表示されますが、すべてが期待どおりに機能しています.

「'ws://127.0.0.1:5000/socket.io/?EIO=3&transport=websocket&sid=240eada2f8bb4ce889ae90ffbf9cb6ea' への WebSocket 接続に失敗しました: 無効なフレーム ヘッダー」

入力フィールドの値の送信は正常に機能していますが、送信したいのは入力値の部分文字列です。部分文字列のタイプを確認しましたが、文字列です。

JavaScript :

フラスコ:

このコードでは、値はフラスコサーバーに送信されていますが、クロムはエラーを示しています。前述のように、すべてが機能しますが、エラーの理由を知りたいだけです。

値を入力フィールドの値に変更すると、エラーは表示されません。

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

javascript - サーバーの作成後にPython SocketIOがイベントを発行する

私は、php とフォルダーを変更する python スクリプトを使用する web プロジェクトを持っています。たとえば、に基づいて、WebサイトでJavaScriptを実行したい。python スクリプトで行われるフォルダーの作成。

私の考えは、python socketio で作業することでした。私は基本的な接続通知を機能させており、ウェブサイト上の js からの出力も js によって処理されています。

問題は、イベントレット サーバーの起動後にイベントを発行できないことです。非同期モードを設定しようとしましたが、望ましい結果が得られません。

これまでの私のコードは次のとおりです。


アップデート:

次のコードのようなスレッドの使用を開始しました:(そのようなスレッドの使用に問題はありますか?または別のより良いアプローチですか?)

問題はsio.emit('mes', 'foo ' + str(count))、 がメッセージを発行することですが、ブラウザは 20 ~ 30 秒ごとにメッセージをキャッチするだけで、不足しているすべてのイベントが処理されます。開発コンソールからのフレームを含む画像を参照してください。

ネットワーク フレーム

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

flask - Flask-Login および Flask-SocketIO current_user.is_authenticated の問題

Flask-Login を使用してユーザーをログインさせており、Flask アプリから手動でログアウトする前にブラウザーを閉じた場合に、ユーザーをログアウトできるようにしたいと考えていました (セッション時間を追跡したい)。

これは、Flask-SocketIO で実行できます。

NB SocketIO のドキュメントに従ってクライアント JS を実行する必要があります。

ブラウザーを閉じてから約 1 分後に、disconnect_user メソッドが実行され、「logged_out OK: True, current_user.is_authenticated: False」と出力されます。すべて問題ありませんが、ブラウザーを再度開いて、以下のように current_user.is_authenticated を呼び出すと、True が返されます。

home.html:

current_user.is_authenticated が明らかに False であり、同じサーバー セッションで異なるブラウザー セッションに対して True を返すのは奇妙に思えます。何が起こっているのか、これを回避する方法はありますか?

要求されたログインおよびユーザー モデル コード:

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

python - Flask-socketio と eventlet を使用して各ユーザー固有のデータを更新します

データベースにプッシュされた測定値をリアルタイムで更新する Web アプリを作成しています。そのためには、ユーザーがページにアクセスするたびにバックグラウンドでメソッドを実行し続ける必要があります。データはユーザー固有であるため、バックグラウンド スレッドを追加するだけでは役に立ちません。ただし、難しいのは、ボタンを押すとスレッドを停止し、すぐに別のデータでスレッドを再開できるようにする必要があることです。次のようなイベントレット gunicorn とフラスコ ソケットでソリューションを作成してみました。

私の問題は、コードが機能し、フロントエンドを更新している間、特定のユーザーに対してこのスレッドを作成する方法を正確に理解できないように見えることです(それが必要な場合でも)。また、別のソケット メソッドからのスレッドを停止し、代わりに新しいソケット メソッドを開始する方法。

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

flask - ソケットハンドラ間で変数を共有するには?

複数のソケット ハンドラが同じ変数にアクセスできるようにする方法はありますか? 以下は、私が達成したいことを示す少しの疑似コードですが、 の UnboundLocalVariable 例外が発生していshared_variableます。

何かご意見は?前もって感謝します!