0

私はPythonでのWebプログラミングにかなり慣れていません。

ブラウザ上でチャットルームを構築することに興味があります。(プロトタイプ用)。私は django をよく知っており、過去に少しひねったことをしたことがあります。

それから私は軌道に出くわしました。文書化はかなり不十分ですが(実際に文書化する資格があるとは思いません)、これらの用語はかなり頻繁に出てくるようです:

  1. 周回
  2. ツイスト
  3. MorbidQ、ActiveQ、および基本的に一連の MessageQueue テクノロジ

orbited の Web サイトでいくつかの例を示しましたが、すべてがどのように連携して機能するかを実際に説明しているようには見えません。

私の質問は次のとおりです。

  1. [listen] ディレクティブにhttp://:9000が表示され続けます。彼らのメイン Web サイトによると、「リッスン セクションでは、Orbited がブラウザ接続を受け入れるために使用するインターフェイスとポートについて説明しています。」私の知る限り、標準ブラウザはポート 80 を使用して通信します。そして、このポートはorbited.jsがコメットテクニック用のサーバーに接続するために使用されていると思いますか? 8000 がブロックされるとどうなりますか? (学校/組織のほとんどのファイアウォールの背後のように)

  2. プロキシという言葉をよく見かけます。このフレームワークの組み合わせに実際のプロキシがどのように適合するかはわかりません

  3. ツイストとオービットの関係。Orbited は、Twisted の上に構築されています (私が間違っていなければ)。では、なぜ軌道上でのねじれのオントップの使用について議論する例が非常に多いのでしょうか? そもそもなぜツイストが必要なのですか?nginx で orbited を使用できますか? (繰り返しになりますが、nginx と orbited を検索すると、proxy という単語が含まれる結果が得られます。これはどのように適合するのでしょうか?)

  4. http://anirudhsanjeev.org/tutorialhow-to-django-comet-orbited-stomp-morbidq-jsio/に関して、著者は xml-rpc サーバーを使用しています。誰かが実際に理由を説明できますか?(まあ、彼は「django ビュー内でリアクター送受信システムを起動することはできない」と言いましたが、そもそもなぜその中でリアクターを実行する必要があるのでしょうか? orbited は twisted の上に構築されていませんか?したがって、それは独自の原子炉を持っていますか?)

  5. Morbidq は、「Morbid は STOMP パブリッシュ/サブスクライブ サーバーであり、クラスター化する可能性はまったくありません。パブリッシュ/サブスクライブ トピックをサポートし、単一ノードとして実行されます」と説明しています。なぜ私たちはこれが必要なのですか?コメットはまさにこのようなことを解決しませんか? 一見似ているように見えるが実際には明確に区別されている一連のテクノロジを組み合わせたチュートリアルを何度も目にするのはなぜですか?

  6. 私がやりたいことは、単純な Web チャット アプリケーションを構築することだけです。これを見て、orbited や twisted や morbidq や django などを使うのは面倒かもしれないと思いました。(もちろん、スケーラブルにする予定です)。

  7. 私は竜巻を見ました、それは大丈夫ですが、コミュニティの面では小さなイモのようなものです. 非ブロッキング接続を許可することを除いて、実際にはコメットを行いません(IRCでこれを学びました)。コメットの特別なテクニックが本当に必要なのか、それともロング ポーリングで満足できるのか? (単純な Web チャット アプリケーションの場合)

  8. 大企業は何を使っている?大企業が適用している標準的なデファクト コメット フレームワークは何ですか? (facebook、gtalk、twitter など?) これらは python で利用できますか?

どんな質問でも助けていただければ幸いです。

4

2 に答える 2

0

私は同じことで苦労しています。今後の参考のために、いくつかの質問に答えることができると思います。

1) そのポートへのアクセスがブロックされている場合、Web サイトは Orbited と通信できません。

2) プロキシは多くのものです。「リダイレクト」と考えてください。nginx はプロキシとして機能します。

3) orbited は twisted の上に構築されていますが、独自の Twisted サーバーを起動します。ねじれた人々に関連する場合、Django などではなく Twisted で構築された独自のアプリについて話すことがあります。

4) RPC を回避し、Django スクリプトから post/get リクエストを介して直接メッセージをキューに入れることができます。

5) morbidQ はキューシステムです。コメットは単なる概念です。フレームワークは特定の問題を解決するために構築されています。他にも同様の解決策があるかもしれませんが、この状況では完全ではありません。私は個人的にmorbidQをrabbitMQに置き換えました。

6) その通りです。スケーラビリティは、選択した技術よりもコーディングに依存します。

7) 竜巻はすごい。特別と見なされるものはすべてブラウザを完全にサポートしていませんが、長いポーリングはサポートしています。

8) 彼らはまだコメット ソリューションをオープンソース化していません。しかし、大したことはありません。Rubyはこの点でより進化していると思います。

将来の Web サーファーに役立つことを願っています。

于 2012-11-07T16:04:02.543 に答える
0

Python とリアルタイム Web に関する Alex Gaynor の PyCon トークをご覧ください。

于 2010-07-07T20:55:50.153 に答える