問題タブ [twisted]
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 - マルチプロセッシング ワーカーを持つツイスト ネットワーク クライアント?
そのため、Twisted + Stomper を STOMP クライアントとして使用するアプリケーションを用意しました。これは、作業を multiprocessing.Pool のワーカーにファームアウトします。
Pythonスクリプトを使用してこれを起動すると、これは問題なく動作するように見えます。これは(簡略化して)次のようになります。
これは展開用にパッケージ化されるので、twistd スクリプトを利用して tac ファイルから実行することにしました。
これが私の非常によく似た tac ファイルです。
説明のために、いくつかの詳細を折りたたんだり変更したりしています。うまくいけば、それらは問題の本質ではありませんでした。たとえば、私のアプリにはプラグイン システムがあり、プールは別のメソッドによって初期化され、その後、プラグインの process() メソッドの 1 つを渡す pool.apply_async() を使用して、作業がプールに委任されます。
したがって、スクリプト (stompclient.py) を実行すると、すべてが期待どおりに機能します。
非デーモン モード (-n) で twist を実行しても、問題なく動作するように見えます。
ただし、デーモン モードで実行すると機能しません。
アプリケーションは正常に起動しているように見えますが、作業をフォークしようとするとハングします。「ハング」とは、子プロセスが何も要求されず、親 (pool.apply_async() と呼ばれる) がそこに座って応答が返されるのを待っているように見えることを意味します。
私は Twisted + multiprocessing で愚かなことをしていると確信していますが、誰かが私のアプローチの欠陥を説明してくれることを本当に望んでいます。
前もって感謝します!
python - Pythonチャット:変数を削除して関数のメモリをクリーンアップしますか?
Python とツイスト フレームワークでチャット デーモンを作成しています。そして、複数のユーザーが接続されている場合に長期的にメモリを節約するために、関数で作成されたすべての変数を削除する必要があるのか 、それともそれらの変数が自動的にクリアされるのか疑問に思っています. 私の要点を説明するために、私のコードのストリップダウンバージョンを次に示します。
python - Python の Twisted フレームワークを使用するチャット サーバーは、フラッシュ クライアントからデータを受信できません
Python で Twisted フレームワークを使用してチャット サーバーを開発しました。Telnet クライアントで正常に動作します。しかし、フラッシュ クライアントを使用すると問題が発生します...
(Flash クライアントは私の古い php チャット サーバーで動作します。パフォーマンスを向上させるためにサーバーを Python で書き直しました)
フラッシュ クライアントとツイスト サーバーの間で接続が確立されます。XMLSocket .onConnect は TRUE を返します。したがって、ポリシー ファイルの権限の問題ではありません。
XMLSOCket 関数 send() を使用して Flash クライアントからメッセージを送信できません。サーバー側では何も受信されません。これらのメッセージを '\n' または '\n\0' または '\0' で終了しようとしましたが、成功しませんでした。
手がかりはありますか?
python - ネットワークプログラミングの抽象化、分解
私は次のような問題を抱えています:
サーバープロセス1
- 発生する更新を常にデータストアに送信します
サーバープロセス2
- クライアントはサーバーに接続し、サーバーはデータストアにクエリを実行して結果を返します
重要なのは、プロセス1とプロセス2がクライアントに送り返す結果はまったく異なり、無関係です。
これをどのように分解しますか?常にデータを送信するプロセスが1つだけあり、リターンタイプが1か2かに対応するビットを持つようにプロトコルを定義していますか?
2つのプロセスがありますか?では、どのようにしてデータストアを共有するのでしょうか(データベースではなく単なる構造です)。
ありがとう!
python - HTTP ダウンロードの非常に大きなファイル
Python/Twisted の Web アプリケーションで作業しています。
ユーザーが非常に大きなファイル (> 100 Mb) をダウンロードできるようにしたい。もちろん、すべてのファイルを (サーバーの) メモリにロードしたくはありません。
サーバー側私はこの考えを持っています:
私はこれがうまくいくと思っていましたが、問題があります.FFでテストしています...ファイルのダウンロードが完了するまでブラウザが待たせているようで、開く/保存するダイアログボックスが表示されます。
ダイアログボックスがすぐに表示され、進行状況バーが表示されると思っていました...
たぶん、Httpヘッダーに何かを追加する必要があります...ファイルのサイズのようなものですか?
networking - 複数のソケットに単一のポートを使用する標準的な方法は?
ちょっと私は Twisted でアプリを書いています。現状では、JSON 経由でクライアントと通信する 2 つの異なるポートにバインドされた 4 つのサーバーがあります。これらの 4 つのサーバーを同じポートにバインドし、相互作用を同じままにする方法はありますか?
たとえば、クライアントがダイレクト ソケット経由で送信される 2 つの異なるフィードをサブスクライブするとします。
今、私はちょうど好きです
そして、それぞれのフィードから正しい JSON 文字列を読み取ります。このタイプの機能を維持しながら、同じポートでサーバーに接続する方法はありますか?
すべてのサーバー機能を 1 つの大規模なサーバーに投入して、データをヘッダー プレフィックスで分割したくはありません。
みたいなことはしたくない
python - ツイスト (Web) ネットワーク スタックに処理するパケットを手動で与えますか?
ねじれたフレームワークを使用して HTTP サーバーを実行しています。「手動で」ペイロードを処理するように依頼する方法はありますか? たとえば、イーサネット フレームを構築した場合、ネットワーク カードにちょうど到着したかのように、それを処理するように twisted のリアクターに依頼できますか?
python - Python - ツイスト テストと単体テスト
HTTP サーバーとして実行されるアプリケーションの一部の単体テストを作成しています。私が試みてきたアプローチは、HTTP サーバーを含むモジュールをインポートして開始することです。次に、単体テストは urllib2 を使用して接続し、データを送信し、応答を確認します。
私たちの HTTP サーバーは Twisted を使用しています。ここでの 1 つの問題は、私が Twisted にあまり詳しくないことです :)
ここで、HTTP サーバーをインスタンス化し、setUp() メソッドで開始してから、tearDown() メソッドで停止します。
問題は、Twisted がこれを好まないようで、単体テストを 1 つしか実行しないことです。最初のものの後、原子炉はもう起動しません。
検索して検索して検索しましたが、意味のある答えが見つからないようです。
私は完全に間違ったアプローチをとっていますか、それとも明らかな何かが欠けているだけですか?
python - Windowsでdjangoでtwistedwebを使用する方法
Windowsにdjangoアプリケーションをデプロイするための非常に簡単な方法を探しています。
基本的に、私の計画は、アプリを搭載したPython Webサーバーをセットアップし、py2exeを使用してすべてを1つの実行可能ファイルにまとめることです。
私はcherrypyを使用してみましたが、最新の(3.1.2)サーバーはNod32アンチウイルスがインストールされたWindowsXPでは動作しません。
そこで、ツイストを試してみることにしました。Django On Twistedを見つけただけですが、それはかなり古いものであり(2008)、単一の実行可能ファイルにパックするのが少し難しいtwistedコマンドを使用しています。
誰かが実用的な情報源を手に入れましたか?