問題タブ [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.
python - Flask Websocket サーバー (Flask-SocketIO) の単体テスト方法
フラスコの websocket サーバーでユニットテストを行うにはどうすればよいでしょうか。私のアプリケーションは、REST API (Flask-restful) と Web ソケット (Flask-SocketIO) で非常に多くのインターフェイスをサポートしています。websocket の「発行」はすべて、セロリ プロセスで実行されます。これらの websocket ロジックの単体テストに問題があります。
何人かの人が言った、まず、このrest-api + websocketアプリケーションを分離する必要があります。アプリケーション全体を単一のサーバーで (論理的に) 実行するのは奇妙ですか?
Websocket コードを単体テストする方法は?
ありがとうございました
java - pythonフラスコソケットのTypeError:「str」ではなく、バイトのようなオブジェクトが必要です
Socketio を使い始めたところ、問題が発生しました。フラスコ セッションに簡単なメッセージを送信できません。私のJavaコード:
私のPythonコード:
エラー:
誰かがこの問題で私を助けてくれることを願っています。どこでも検索しましたが、答えが見つかりません。
socket.io - ソケット io コードがわかりにくい
これは、socket_io python サーバーの base_manager.py にあります-> このコードはどのように意味をなすのでしょうか? メッセージを発信したい。部屋がない場合、それはどのように機能しますか? 名前空間がself.roomsにない場合->部屋がないため、常に呼び出し元に戻りますよね?:
javascript - フラスコ ソケット 400 (BAD REQUEST)
いくつかのライブ ツイートを取得するためにフラスコの socketio を使用しようとしています。しかし、私のテストでは、時々 400 (BAD REQUEST) が返されます。私は問題が何であるか疑問に思っています。
エラーサンプルは次のとおりです。
socket.io.js:3511 POST http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=LOMYW0D&sid=c81baa220764437184a14366357c6d3d 400 (BAD REQUEST)Request.create @ socket.io.js:3511Request @ socket.io.js:3424XHR.request @ socket.io.js:3352XHR.doWrite @ socket.io.js:3365(anonymous function) @ socket.io.js:3884(anonymous function) @ socket.io.js:4747proxy @ socket.io.js:1197(anonymous function) @ socket.io.js:4762(anonymous function) @ socket.io.js:4742exports.encodePacket @ socket.io.js:4541encodeOne @ socket.io.js:4741eachWithIndex @ socket.io.js:4760map @ socket.io.js:4767exports.encodePayload @ socket.io.js:4746Polling.write @ socket.io.js:3883Transport.send @ socket.io.js:2912Socket.flush @ socket.io.js:2623Socket.sendPacket @ socket.io.js:2683Socket.ping @ socket.io.js:2587(anonymous function) @ socket.io.js:2574
socket.io.js:3511 GET http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=LOMYPYb&sid=c81baa220764437184a14366357c6d3d 400 (BAD REQUEST)Request.create @ socket.io.js:3511Request @ socket.io.js:3424XHR.request @ socket.io.js:3352XHR.doPoll @ socket.io.js:3382Polling.poll @ socket.io.js:3795Polling.onData @ socket.io.js:3834(anonymous function) @ socket.io.js:3385Emitter.emit @ socket.io.js:4389Request.onData @ socket.io.js:3546Request.onLoad @ socket.io.js:3627xhr.onreadystatechange @ socket.io.js:3499
socket.io.js:3511 POST http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=LOMYeOF&sid=c81baa220764437184a14366357c6d3d 400 (BAD REQUEST)
私のサーバー側コード(pythonフラスコ):
私のクライアント側のコード:
これらは、index.html ページを開始したときの初期出力です。
しかし、約 30 秒後に、前の 400 の不正な要求エラーが発生し始め、次の結果が続きました。
それから 30 秒ほど経つと、悪いリクエストが実行され、結果が最初からやり直されます。私はどこで間違っていますか?どんな助けでも大歓迎です。
クライアント側では、socketio js 1.4.5 を使用しています
Python の場合: Flask-SocketIO==2.5 python-engineio==0.9.2
python - pyudev MonitorObserver がイベントレットでメインスレッドをブロックしないようにするにはどうすればよいですか?
**更新しました
私は以下を持っています.pyudev readthedocsサイトの例によれば、デーモンスレッドにする必要があります. ただし、Threading と組み合わせても、eventlet のモンキー パッチを使用するとブロックされます。
これを実行します:
Flask-SocketIO に eventlet のモンキー パッチを適用しているため、useless_thread1() の起動が停止します。モンキー パッチ コールをコメント アウトすると、すべてが意図したとおりに機能します。
python - Flask-SocketIOでテストクライアントに通知をプッシュする方法は?
サーバーからクライアントとしてプッシュを受信しようとしています。テストクライアントを次のように使用します。
クライアント:
サーバ:
hit_client
サーバーはチャネルをプッシュして呼び出す必要がありますが、それは起動されていません。ただし、 にsocket_client.get_received()
は出力されたデータがあります。WebSocket の要点は双方向通信 (関数トリガーのプッシュ) だと思っていました。
これは非常に単純なセットアップであり、機能しているようにも見えません...どんな助けも非常に高く評価されます. 私は何時間も頭をバタンと閉めてきました。
python - Flask-SocketIO の発行関数はスレッドセーフですか?
Flask-SocketIO アプリケーションがあります。socketio.emit()
別のスレッドから安全に呼び出すことはできますか? アトミックはsocketio.emit()
通常のようsocket.send()
ですか?