問題タブ [flask-sockets]
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-Sockets の使用方法 KeyError の取得: 'wsgi.websocket'
サンプルコードでFlask-Socketsを使用しようとしています:
残念ながら、ブラウザを使用して URL /echo にアクセスすると、次のようなエラーが表示されます。
私が間違っていることを誰かが考えていますか?すべてのヒントは大歓迎です!
[編集] @jbub - ヒントをありがとう! まず、組み込みの開発サーバーの代わりに gunicorn を使用します。だから私はそれを使って始めましたgunicorn -k flask_sockets.worker -b 0.0.0.0:5000 main:app
。次に、views.py に以下のコードを挿入しました。echo_test.html は、指定したコードです。/echo_test にアクセスすると、実際に「ソケットが閉じられました」というプロンプトが表示されます。
しかし、私の目的は、リストからランダムに選択された他の値で更新されるページに (リストからランダムに選択された) 単語を持つことだとしましょう。それを達成するためのヒントはありますか?
websocket - フラスコソケットとガンコーンで 3G 経由で接続すると WebSocket 接続が失敗する
フラスコソケットを使用して WebSocket を使用する小さなアプリを作成しました。私は現在、小さな実験であるため、前もってnginxなどを使用せずに、gunicornから直接サイトを提供しています(フラスコソケットのgeventワーカーを使用)。アクセスポイントに接続した状態でスマートフォンからサイトにアクセスしようとすると、サイトは正常に動作します。一方、3G で接続すると、サイトはロードされますが、websocket 接続は失敗します。
サーバーログでこれを取得します:
途中でプロキシサーバーがWebソケットのヘッダーをいじったりとか関係があるのではないかと思ったので、クライアント側でJSコードを「wss://」に変えてみたのですが、うまくいきませんall (どのクライアントも接続を確立できません)。
これに関するアイデアを提供してくれる人に感謝します。
python - uwsgi で動作する単一のアプリにフラスコとフラスコ ソケットを統合する方法
nginx の背後で uwsgi/flask を実行している既存のアプリがあります。WebSocket を同じアプリに統合したい。Flask socketsは有望に見えるので、それを試しています。
Flask sockets ではgevent-websocketの実行について簡単に説明していますが、既存のアプリをこのセットアップに統合するためのサンプル コードは提供されていません。また、gevent-websocket と既存のフラスコ アプリの組み合わせをいくつか試しましたが、それでも 500 を取得し続けます。さらに、500 の性質を知ることができればいいのですが、既存のフラスコ アプリの場合のように、エラーは uwsgi ログに表示されません。したがって、トレースダンプを表示するためのデバッグ ディップがあれば、それは素晴らしいことです。
このセットアップで動作する簡単なエコー ルートを取得するのを手伝ってくれる人はいますか? 前もって感謝します。
参考までに、私は現在使用しています:
- uWSGI 1.0.3-debian
- パイソン2.7.3
- フラスコ 0.10.1
- nginx 1.4.3
- フラスコソケット 0.1
python - ビューから websocket メッセージを送信する
プロジェクトへのポーリング更新を置き換えることができるかどうかを確認するために、websocket をいじっています。私は Flask-Sockets を使用しており、Flask ビューを介して更新を送信したいと考えています。
例えば
私は周りを見回しましたが、似たようなものは見つかりませんでした。これは可能ですか?
python - Flask-Socketio: 名前空間のキーエラー。接続されているクライアントのリストを取得
Flask を実行しているサーバーで Flask-Socketio を使用しており、クライアントは JavaScript を実行しています。すべてのクライアントは、名前空間を使用してサーバーに接続します'/test'
。クライアントで特定のアクションが発生すると、接続されているすべてのクライアントを反復処理するサーバー上の関数をクライアントがトリガーするようにします。次のコード セグメントを使用して、接続されているクライアントのリストを反復処理しています。
各接続には、接続時に割り当てられた「id」キーがあります。
ただし、名前空間キーが見つからなかったことを示す次のエラーがサーバーから返されることがあります。
サーバーに接続するすべてのソケットが同じ名前空間に接続しているため、このエラーが発生する理由がわかりません。さらに、このエラーは関数呼び出しの一部でのみ発生します。このエラーが一貫していないのはなぜですか?
接続されているクライアントのリストを反復処理するより良い方法はありますか?
python - Flask-WebSocket サーバーに接続するには?
このチュートリアルに従ってFlask-WebSockets
、アプリで試して使用しています。
http://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent
私の問題は、サーバーに正しく接続する方法がわからないことです。
フラスコアプリを呼び出すと、次の形式になります。
http://localhost:80/myapp/<route_goes_here>
私のアプリは次のように構成されています。
__init__.py
ビュー.py
私のセットアップを考えると、この行をどこに置くべきですか:
の次の行にどのアドレスを入力すればよいかもわかりませんindex.html
。
index.html
このファイルのコードはこれと同じです ( https://github.com/miguelgrinberg/Flask-SocketIO/blob/master/example/templates/index.html )
試してみましたがhttp://localhost:80/test
、応答がありません。namespace
が住所の一部であるべきかどうかはわかりません。
ご協力いただきありがとうございます。
sockets - Flask Sockets request/ws をコンテキスト外で使用する
Flask リクエストをコンテキスト外で使用できるようにしたいと考えています。
Flask 0.10 以降、decorator() を使用してそれを行うことができることに気付きました。これが、そのデコレータを使用して、 flask-socket@copy_current_request_context
を変更しようとしている方法です。具体的には、フラスコ ソケット の一部であるデコレータ:@socket.route
これが生成するエラーは私には理にかなっていますが、私が望むことを行う方法があると仮定しています.
リクエストをデコレータに渡そうとしましたが、うまくいきませんでした。
もう少しコンテキストを提供するために、変数(リクエスト環境であると理解しています)request.environ['wsgi.websocket']
にアクセスできるように、 Sockets オブジェクト内の dictに追加しようとしています。ws
より高いレベルでは、関数またはビューws.send()
以外の場所@route
(おそらくソケット オブジェクト インスタンスにアクセスできる別のスレッド) から実行できる機能が必要です。
私はSocket-IOで同様のことをしました-socketio
オブジェクトはあなたができる必要があるすべてでありsend()
、recieve()
データです-しかし、Socketsではwsオブジェクトが必要なようです.request.environ['wsgi.websocket']
python - Flask_sockets アプリのテスト
私はflask_socketsライブラリを使用してアプリを構築しています。どうやってテストするのですか?
ユニットテストを書きたいコードサンプルは次のとおりです。
この git repoからこのコードを使用しています。