問題タブ [twisted.web]
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.web サイト用に twisted.web から comet サーバーを構築する
だから私はすでにウェブサイトをセットアップしており、チャットアプリケーション用のコメットサーバーが必要です. サイトは twisted.web で構築されており、コメット サーバーも twisted で構築したいと考えています。
しかし、私はそれを行う方法がわかりません。私はこの投稿を見て、コード スニペットの仕組みを理解しましたが、試してみたところ、ページの読み込みに AGES がかかり、読み込みが完了すると、すでにいっぱいになっていて、追加を続けています。
これがどのように機能するかについての私の考えは、これを別のプロセスとして実行し、ねじれたサイトを別のプロセスで実行することです。ねじれたサイトのページには、comet サーバーへの ajax 呼び出しがあり、応答を待ちます。しかし、ページの読み込みのように、その応答が返されるまでに時間がかかるでしょうか?
そして、comet サーバーが Web サイト サーバーからデータを取得するにはどうすればよいでしょうか? Web サイトをポーリングするだけでなく、comet サーバーがない場合もあります。comet サーバーの GET ハンドラーに無限ループを配置し、Web サイトにそれを呼び出して中断させますか? comet サーバーと Web サイトはどのようにデータを共有しますか? たとえば、comet サーバーは、ユーザーのセッション データについて、ユーザーが誰で、何を待っているか、何を送信できるかなどをどのように知るのでしょうか?
また、これについてはよくわかりませんが、コメットサーバーにスレッドを組み込む必要がありますか、それとも既にマルチスレッド化されていますか?
python - Web サイト API へのインターフェースの設計
わかりました、Grooveshark ( http://grooveshark.com ) とやり取りする方法をプログラミングしています。現在、クラス Grooveshark といくつかのメソッドがあります。1 つはサーバーとのセッションを取得し、もう 1 つはセッションに基づくトークンを取得し、もう 1 つはサーバーへの API 呼び出しを構築するために使用されます (他のメソッドはそれを使用します)。今はこんな感じで使ってます…。
クラスを初期化した後でも、最初に2つのメソッドを呼び出す必要があるか、他のメソッドが機能しません。これを解決するために、API呼び出しを作成するメソッドがセッションとトークンを処理するように取得しようとしています。現在、これら 2 つのメソッド (セッション メソッドとトークン メソッド) はクラス変数を設定し、何も返しません (まあ None)。私の質問は、トークンとセッションを必要とするサイトとのインターフェイスに使用される共通の設計はありますか? また、トークンとセッションはサーバーから取得されるため、initメソッドで実行することはできません (API 呼び出しが行われる前にブロックされるか、実行されない可能性があるため)。
python - Python Twisted フレームワーク HTTP クライアント
Python で単純な SSL HTTP クライアントを作成したいと考えており、Twisted フレームワークについて聞いたことがあります。
REST サービスで認証できるようにする必要があるため、ユーザー名とパスワードをターゲット サーバーに POST するだけでよいと考えていました。認証が成功すると、クライアントは Cookie を受け取ります。
Twisted で構築された HTTP クライアントは、後続の各リクエストに対して Cookie ヘッダーを自動的に再送信しますか? それとも何か特別なことをする必要がありますか? Twisted を使ったことがありません。
ありがとう
python - LostConnectionでツイストHTTPプロキシチャネルがNoneに設定されていますが、loseConnectionはまだ呼び出されていません
わかりました。httpGETリクエストを取得してHTTPPOSTリクエストに変換するプロキシを作成しています(Python用の多くのメディアプレーヤーはGETのみをサポートしているため)。したがって、これらの結果をキャッシュする作業を行っていることはわかっています。URLを1回だけダウンロードし、スーパークラスからサブクラスに多くのコードを移動して、同じものを複数のサーバー接続に送信できるように変更しました(たとえば、サーバー接続が確立されました。可能な場合は、ダウンロードインスタンスに接続するだけです)。
とにかく、loseConnectionを呼び出す前にhttpチャネルがNoneに設定されているため、最後の部分を除いてほとんど機能します(これは、インターネットの接続などのエラーがありません)。これにより、Noneオブジェクトに属性トランスポートがないというエラーが発生します。私がloseConnectionを呼び出していること。
これがコードです
そして、self.channelのトレースバックがnoneに設定されています(各setattr呼び出しでのtracebackモジュールのprint_stack )
注:最後の数行を見てください。問題はそこにあると思います。
これは私が得るnone属性の例外です
apache - 高度にスケーラブルでモジュール式の分散サーバー側アーキテクチャに関する反論
私の質問は実際には問題ではなく、意見を求めるものです。おそらく、これは投稿するのに適切な場所ではありません。それにもかかわらず、ここのコミュニティは非常に情報が豊富であり、試してみても害はありません...
私は、高度にスケーラブルで、とりわけ高度にモジュール化されたバックエンドアーキテクチャを作成する方法を考えていました。たとえば、大規模なサイトへの将来性のある進化の可能性を秘めた大規模なサイトのバックエンドエコシステム全体。
これには、関心の分離が非常に高度になり、(たとえば)基盤となるDBを置き換えることができるだけでなく(つまり、OracleからMySQLに)、実際のタイプのデータベースを置き換えることができます(SQLからKV、または逆に)。
各サブシステムがバックエンドエコシステム内で独自のAPIを公開する状況を想定しています。このようにして、APIは一定のままでありながら、実装は時間の経過とともに(根本的にさえ)変更される可能性があります。
システムは、特定の言語に関連付けられていないという点で異種である必要があります。異なる言語を使用するモジュールまたはサブシステム全体に対応できる必要があります。
それから、私が想像していたのは、単にWeb自体のアーキテクチャーであることに気づきました。
だからここに私の議論のポイントがあります:(主に)テキストベースのプロトコルを使用するオーバーヘッドとは別に、複雑なバックエンドアーキテクチャを私が説明する方法で実装すべきではないという最優先の理由がありますか、または私がいくつかの強力な論理的根拠がありますTwisted、AMQP、Thriftなどの通信プロトコルを使用するためにmがありませんか?
更新:@meagarからのコメントに続いて、おそらく質問を再定式化する必要があります:明らかなパフォーマンスヒットを補うのに十分な、非常にシンプルで柔軟性があり、よく理解されているアーキテクチャ(つまり、一連のRESTful APIとして公開されているすべての機能)を使用することの明らかな利点ですこのアーキテクチャをバックエンドコンテキストで使用するときに発生しますか?
python - 優れた Twisted Web リソースの作成
私は最初の Twisted 10.1.0 Web を書きましたが、Resource
これはベスト プラクティスに正確に従っておらず、初心者向けのバグが含まれている可能性があるため、フィードバックを求めています。
リソースは、 を返すサービスに応答し/?url=http://www.foo.baz/abc123
、依存しますdict
。何か問題が発生した場合 (たとえば、 が無効または存在しないurl
場合、 a400
が返されます)。
任意のコメント?修正するもの、改善するもの
python - Twisted.webからのすべてのデフォルトのリソース/応答をオーバーライドします
超基本的なhttpツイストフロントエンドの場合。指示がない限り、HTMLが書き戻されないようにするにはどうすればよいですか。
だから、私は以下に私の/zooのURLを持っています。トレースバック、または「そのようなリソースがありません」応答の場合は、接続をドロップするか、空の応答を返します。
非常に単純なものだと思いますが、理解できません:)特定の子パスがなくても実行できることはわかっていますが、効率的に実行したい場合は、できるだけ早く削除したいと思います。たぶんリソースを使用しませんか?
python - Twisted and Websockets:Beyond Echo
WebSocketについての私の継続的な好奇心の中で、私はトレンドに気づいています:
WebSocketユニバースの「HelloWorld」は、少なくとも現時点では、「エコー」機能のようです。つまり、デモンストレーションされたアプリケーションは通常、「何かを送信し、何かを受信します」です。
プロトコルが機能していることを適切に示していますが、この例では、従来の要求/応答サイクルで可能になるのと同じタイプの通信のみを実際に示しています。
たとえば、twisted.web.websocketsの(サーバー側での)唯一のデモンストレーションは次のとおりです。
代わりに、ここで「プッシュ」機能を調べるにはどうすればよいですか?つまり、Webソケットを開いたままにして、後で何らかのイベントの発生によって決定されたときに、WebSocketを介してメッセージを送信するにはどうすればよいですか?その内容もこのイベントの影響を受けますか?
(この質問に興味がある人は、私が数日前に尋ねたこの質問を説得力があると見なすかもしれません:WebSocketとpython / django(/ twined?)を使用して移動します)
python - Pythonツイストクライアント接続が失われました
私はこのツイストクライアントを持っています。これは、インデックスを持つツイストサーバーに接続します。このクライアントをコマンドラインから実行しました。それはうまくいきました。main()
ここで、クエリを続行できるように、ループで実行するように変更しました(を参照)。ただし、クライアントは1回だけ実行されます。次回は単にと言いconnection lost \n Connection lost - goodbye!
ます。
私は何が間違っているのですか?サーバーに再接続しているループで、それは間違っていますか?
python - Python ツイスト デーモン
私は単純なねじれたサーバーを書きました -
これは で問題なく動作し127.0.0.1:8090
ます。nohup
&を使用してプロセスをバックグラウンドで実行すると、これは端末 (フォアグラウンド) で実行されることに注意してくださいctrl+Z
。サーバーはリクエストに応答しません。このねじれたサーバーをデーモン化するにはどうすればよいですか