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

socket.io - Zope と socket-io の統合

Python 2.6.8 と socket-io を使用して Zope 2 (2.13.19) を統合する方法はありますか?

https://python-socketio.readthedocs.io/en/latest/を見つけましたが、要件を満たしていないようです。

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

python - なぜflask_socketio.disconnectはスレッドの完了を妨げますか?

私は次のシステムを持っています: [Client] - [Web Server] - [Connector]

コネクタは、Web サーバーとデータ ソースの間の一種の中間コードです。

コネクタとのサーバー接続を監視する必要があります。接続が失われた場合は、クライアントに通知する必要があります。

Web サーバーとコネクタ間の通信は、socketio を使用して編成されます。

問題は、コネクタが機能しなくなった場合、Web サーバーがそのことを 1 分後にしか認識できないことです (これが最善のケースです)。

私は、サーバーがコネクタのステータスを毎秒チェックする必要があると判断しました。

コネクタがサーバーに接続されると、バックグラウンド タスクが開始されます。タスクの本質: 毎秒: 1) 時間を修正します。2) 固定時間をスタックに保存します。3) コネクタにエコー メッセージを送信します。(server.background_thread を参照)

コネクタは、エコー メッセージとタイム スタンプをパラメーターとして受け取り、受信したタイム スタンプをパラメーターとして渡すことで、エコー メッセージを Web サーバーに送信します。(client.echo を参照)

タイムスタンプがスタック内の最後の値と等しい場合、Web サーバーはエコー メッセージを受信し、この値はスタックから削除されます。(server.on_echo_connector を参照)

Web サーバーでは、反復ごとにスタック サイズがチェックされます (server.background_thread を参照)。5 より大きい場合、これは、コネクタがエコー メッセージに 5 回応答しなかったことを意味し、コネクタが利用できないと判断し、接続を切断します。

コネクタが使用できないことをサーバーが認識すると、エコー メッセージをコネクタに送信したスレッドを終了する必要があります。

スタック サイズが 5 を超えたら、無限ループを終了して を呼び出しますflask_socketio.disconnect (connector_sid, '/ connector')。この呼び出しの後、何も機能しません (例print)

on_disconnect_connector(サーバー) メソッドでは、thread.join()が呼び出され、決して終了しません。

そして、コネクタが再び開始されたときに正常に接続され、すべてが最初からやり直されるように、スレッドを完了する必要があります。

この問題を解決するには?

サーバ

クライアント

パイソン 2.7

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

python - 複数のマルチプロセスでフラスコソケット、イベントレットを使用する正しい方法

複数のマルチプロセスを備えたイベントレットであるフラスコソケットを操作する方法が正しいかどうかを知りたいです。

gstreamer でカメラ ストリームを処理する複数のプロセスがあり、各プロセスはフレームとメタデータを redis に書き込みます。

私のメイン プログラムは、socketio を使用してこのプロシージャを処理します。(開始、停止) し、redis からデータを取得し、ソケット経由で Web クライアントに送信します。

以下のコードは非常に縮小されていますが、私が何をしたかを示しています。一般的にコードは機能しますが、正しい方法で実行しているかどうかを確認したいと思います。さらに情報が必要な場合はお知らせください。

本当にありがとう