問題タブ [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 投票する
1 に答える
5370 参照

python - Websocket エンドポイントの外部から Websocket メッセージを送信するには?

Flask-socketIOを使用して Websockets も使用するFlaskを使用して Web サイトを構築していますが、理解できないことが 1 つあります。

チャット機能を構築しました。1 人のユーザーがメッセージを送信すると、websockets を使用してそのメッセージをサーバーに送信します。その後、同じ呼び出し内から他のユーザーにメッセージを送信します。

しかし、ファイルが保存されたときにユーザーにメッセージを送信したいとしましょう。これは、ファイルが POST されるビュー内からメッセージを発行する必要があることを意味します。したがって、flask_socketio docsによると、出力に名前空間を追加できます。だから私はこれを書いた:

しかし、以下のスタックトレースを見ると、名前空間にまだ問題があります。werkzeug にはAttributeError: 'Request' object has no attribute 'namespace'.

ここで私が間違っていることを誰か知っていますか?それとも、flask_socketio のバグですか? すべてのヒントは大歓迎です!

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

python - ソケット使用時の Flask デバッグ モード

ソケット (flask socketio) を使用する python Flask アプリケーションを構築しています。基本的に、クライアントは実行したいコマンドをサーバーに送信します。サーバーはコマンドを実行し、ソケットをクライアント コマンド出力に送信します。

ユーザーからのリクエストを受け付けるハンドラ関数があります。この関数はコマンドを実行し、多くのソケットをクライアントに送り返します。stdout および stderr スレッドを取得するには、スレッドも使用されます。

フラスコアプリがデバッグモードの場合、関数内で発行されたソケットは、関数が終了する前にクライアントに到達します (これは望ましいことです)。しかし、デバッグがオフの場合、すべてのソケットは何らかの形でキューに入れられ、関数の終了後に送信されます。サーバーからのリアルタイムの応答はありません。

実行をクリックします->少し待ちます->出力は次のとおりです

それ以外の:

実行をクリックします->ここに出力の一部があります->ここに別の行があります-> ...

Flask docs を読みましたが、デバッグの説明はのとおりです。

デバッグ サポートを有効にすると、コードの変更時にサーバーが自動的に再読み込みされ、問題が発生した場合に便利なデバッガーも提供されます。

Flask にすべてをすぐに送信するように指示する方法、またはこれを解決する方法はありますか? フラスコ用のflask-socketioプラグインに関連している可能性があります

あなたのフィードバックに本当に感謝します:)

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

flask - フラスコ スクリプト、フラスコ ソケット、およびアプリケーション ファクトリでフラスコ移行を使用する

アプリケーション ファクトリ アプローチを使用してフラスコ アプリケーションを作成していますが、Flask-Migrate を socketio とフラスコ スクリプトで使用すると問題が発生します。

問題は、自分のcreate_app関数をに渡していることですが、自分にもManager渡す必要があります。そして今のところ、解決策が見えないようです。これら 2 つのソリューションを組み合わせる方法はありますか?appsocketio.run()

管理.py:

私が socketio で古いアプローチを使用したとき、flask-migrate なしではすべてが機能しました。新しいアプローチを使用して socketio 部分を削除すると、移行が機能します。

注: 次のコマンドの両方でアプリを呼び出せるようにしたいと考えています。 python manage.py run python manage.py -t True db upgrade

編集:

使用しようとしていcurrent_appますRuntimeError: working outside of application context

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

python - ローカルホスト (xampp) でフラスコの socket.io を実行する方法

私が見たチュートリアルでは、次のコードを使用してサーバーを実行しています。

私の__init__.pyファイルは次のとおりです。

私のviews.pyファイルにはすべてのデコレータ@app.route@socketioデコレータが含まれています。

私の質問は、コードをどこに配置する必要があるかです:

ファイルに入れると、__init__.py_次のエラーが表示されます。

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

flask - threading=flask-socketio で True

私はフラスコを使用しており、一部のルート ハンドラーが計算を開始し、完了するまでに数分かかることがあります。フラスコの開発サーバーを使用して、 app.run(threaded=True) を使用できます。サーバーは、これらの数分間の計算を実行していない間、他のリクエストに応答し続けます。

今、私は Flask-SocketIO の使用を開始しましたが、同等のことを行う方法がわかりません。これらの計算のいずれかを開始するたびに、Python で別のスレッドを明示的に生成できることを理解しています。それが唯一の方法ですか?または、flask-socketio の threaded=True に相当するものはありますか。(または、おそらく、私は完全に混乱しています。)

助けてくれてありがとう。

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

python - Flask SocketIOはサーバーから部屋にメッセージを送信します

myでは、が a に参加して、 my からメッセージが送信されるようにするapp必要があります。clientroomreceiveserver

サーバーコード

クライアントコード

負荷がかかるとすぐにwebpage、私"venue_1"webpage formタイトルの"join".

variable room側面のserverも に設定されてい"venue_1"ます。

問題は、 を呼び出すと、API /scan/user/...に何も表示されないことclientです。でも、

正しく表示されます。