問題タブ [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 - ツイスト: プッシュ プロデューサーの例を使用した tcp サーバー?
Python と Twisted を使用して単純な TCP サーバーを作成したいと考えています。
サーバーが起動し、接続を待ちます - 私はすでにクライアントを持っています - Python 以外のアプリケーションです。接続が確立されると、サーバーは一定の間隔 (1 秒など) でデータの送信を開始します。
サーバーは静的ファイル (一度に 1 レコード) からデータを読み取ります。この部分を理解できるはずです。
クライアントが接続されたら、プッシュ プロデューサーを使用してデータのプッシュを開始すると仮定します。
ツイストのファクトリを持つ単純な tcp サーバーがあり、connectionMade/dataReceived などに反応できますが、プッシュ プロデューサーをプラグインする方法がわかりません。
ねじれた tcp サーバーを使用したプッシュ プロデューサーを示す例を知っている人はいますか?
python - Twisted とスレッドの問題
Twisted の使用経験が豊富な方の中には、スレッドと一緒に使用することについて私が判断するかもしれませんが、私はそれを実行しました :)。そして今、私はどういうわけか問題を抱えています-クライアントリクエストをリッスンするアプリケーションサーバーを使用していますが、新しいクライアントが接続するたびに別のスレッドが生成され、しばらく使用するとサーバーが停止するため、適切に閉じるのを忘れている可能性がありますリクエストの処理。さて、私は3つの異なるタイプのスレッドを持っていますが、それらの1つで発生します-問題は、サーバーが動作を停止したときに常にThread.join()
動作しないように見えるため、それを行う適切な方法がわからないことです。cat /proc/<pid>/status
Threads: 43
したがって、これをデバッグする方法を探しており、スレッドを適切に閉じる方法を確認しています。
そして、ええ、私はこの質問について知っています:
そしておそらく他の多くの。
python - Twisted: アウトバウンド接続の送信元 IP アドレス
私は、SIP サーバーの可用性をチェックするサービス (Python で記述され、Twisted フレームワークを使用し、Debian GNU/Linux で実行される) を実装する過程にあります。これには、OPTIONS メソッド (SIP プロトコル機能) を使用します。これは一般的な方法のようです。正しい RFC 準拠のヘッダーを作成するには、確立される接続の送信元 IP アドレスと送信元ポートを知る必要があります。[どのように] Twisted でこれを行うことができますか?
これは私が試したことです: 私はprotocol.DatagramProtocolをサブクラス化し、その中で andstartProtocol(self)
を使用self.transport.getHost().host
しself.transport.getHost().port
ました。後者は実際に使用されるポートですが、前者は 0.0.0.0 しか生成しません。
この時点で、Twisted は [まだ?] どのインターフェースが使用されるか、どのソース IP アドレスが使用されるかを認識していないと思います。Twisted はこれを支援する機能を提供していますか、それとも別の方法で OS とのインターフェース (ルーティング) が必要ですか? それとも使い方をself.transport.getHost().host
間違えただけ?
python - Twisted 内から Django DB 操作を延期する方法は?
通常の Django サイトを実行しています。さらに、Jabber プレゼンス通知をリッスンし、Django の ORM を使用して Django DB を更新する別のねじれたプロセスがあります。
これまでのところ、対応する Django モデルを呼び出すだけで機能します (設定環境を正しくセットアップした後)。ただし、これは Twisted アプリをブロックします。これは私が望んでいるものではありません。
私はツイストに慣れていないので、遅延を使用してノンブロッキングの方法で(ORMを介して)Django DBにアクセスする最善の方法は何でしょうか。
- deferredGenerator ?
- twisted.enterprise.adbapi ? (ORMを回避しますか?)
- ???
プレゼンス メッセージが解析される場合、jid_str を持つユーザーがオンライン/オフラインであることを Django DB に保存します (Django モデルを使用UserProfile
)。私はその機能でそれを行います:
現在、私はそれを呼び出す:
python - PythonツイストフレームワークHttpClientはプロキシにアクセスしますか?
を使用してWebページにアクセスする必要があります
または、既知のアドレス (例: www.google.com) から Web ページをダウンロードする同様の方法を使用する場合、問題は次のとおりです。私はプロキシ サーバーの背後にいて、twisted または factory を構成して自分のプロキシ、アイデアはありますか?
ユーザー、パスワード、ホスト、およびポートを指定する必要があることに注意してください。私のLinuxマシンでセットアップhttp_proxy
しhttps_proxy
てhttp://user:pwd@ip:port
前もって感謝します。
python - ねじれたアプリケーションのテスト - クライアントのロード
Twisted ベースのサーバーを作成しましたが、Twisted を使用してテストしたいと考えています。
しかし、同時に大量のリクエストを開始する負荷テストを書きたいと思います。
しかし、この問題で立ち往生しているため、主にクライアント側の Twisted の概念を理解していないと思います。
socket_client.py:35: DeprecationWarning: Reactor はすでに実行中です! この動作は Twisted 8.0 で非推奨になりました
。
私は何が欠けていますか?
それをテストする方法は?
ありがとうございました、
サミュエル
python - XML ドキュメントを取得して Python ツイストで解析するにはどうすればよいですか?
ストリーミング中に URL を取得して解析するための高速な方法が必要です。理想的には、これは超高速であるべきです。私が選んだ言語は Python です。私はツイストがこれを行うことができるという直感を持っていますが、例を見つけるのに途方に暮れています.
python - リモートファイルシステムを介した読み取り/書き込みをブロックしない方法
リモートファイルシステム (NFS、SSHFS、または sambafs など) でファイルを読み書きする方法、またはエラーコードですぐに戻る方法でファイルを読み取る方法はありますか? 実際、私は Twisted を使用しており、リアクターをブロックせずにリモート ファイルにアクセスする安全な方法があるかどうかを知りたいです。
python - TCP Guaranteed は順番に到着しますか?
2 つの TCP メッセージを送信する場合、後者が前者より先に到着する場合を処理する必要がありますか? それとも、発送した順番通りに届く保証はありますか?TCP 標準に準拠する必要があるため、これは Twisted 固有の例ではないと思いますが、Twisted に精通している人が私の心の平和のために Twisted 固有の回答を提供できれば、それは高く評価されます :-)
python - Twisted サーバーのメモリ使用量を減らすにはどうすればよいですか?
Python/Twisted で音声放送サーバーを作成しました。正常に動作しますが、メモリの使用量が急速に増加します! これは、一部のユーザーのネットワークが、オーディオを時間内にダウンロードするのに十分ではない可能性があるためだと思います。
私のオーディオサーバーは、オーディオデータを別のリスナーのクライアントにブロードキャストします。一部のクライアントが時間内にオーディオをダウンロードできない場合、つまり、サーバーはリスナーが受信するまでオーディオデータを保持します。さらに、私のオーディオ サーバーはブロードキャスト サーバーであり、オーディオ データを受信して別のクライアントに送信します。Twisted では、同じオーディオ ピースであっても、それらのデータを別のバッファにコピーします。
メモリの使用量を減らしたいので、クライアントがいつオーディオを受信したかを知る必要があります。これにより、遅いクライアントをいつ破棄するかを決定できます。しかし、Twisted でそれを達成する方法がわかりません。誰かアイデアがありますか?
また、メモリ使用量を減らすために他に何ができますか?
ありがとう。ビクター・リン。