問題タブ [tornado]

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.

0 投票する
4 に答える
3525 参照

python - Pythonグローバル変数はスレッドセーフですか?

編集:竜巻のようなシングルスレッドのWebフレームワークでグローバル変数が安全かどうかを尋ねる

グローバル変数からデータベース接続を取得するmongoengineormを使用しています。

また、シングルスレッドのPythonWebフレームワークであるtornadoも使用しています。ある特定のビューでは、データベース接続を取得してDBRefオブジェクトを逆参照する必要があります[外部キーと同様]:

によって返される接続は_get_dbグローバル変数であるため、衝突や間違った値が間違ったスレッドに返される可能性はありますか?

0 投票する
2 に答える
788 参照

python - Tornado Web Framework でチャット アプリケーションを作成するときに使用するミューテックス/ロック/待機メカニズム

Tornado を使用してチャット サーバーを実装しています。

前提は単純で、ユーザーが Tornado サーバーへの HTTP ajax 接続を開くと、チャット ルームに新しいメッセージが表示されたときにのみ Tornado サーバーが応答します。新しいメッセージが着信したか、エラー/タイムアウトが発生したかに関係なく、接続が閉じるたびに、クライアントは接続を再度開きます。

Tornado を見ると、どのライブラリを使用すれば、これらの呼び出しにシグナルを送信する中心的なオブジェクトでこれらの呼び出しを待機させることができるかという疑問が生じます - A_NEW_MESSAGE_HAS_ARRIVED_ITS_TIME_TO_SEND_BACK_SOME_DATA.

これを Win32 用語で説明すると、各非同期呼び出しは、WaitForSingleObject(...)中央の Mutex/Event/etc でハングするスレッドとして表されます。

標準の Python 環境 (Tornado) で運用します。組み込みで使用できるものはありますか? 外部ライブラリ/サーバーが必要ですか? Tornado が推奨するものはありますか?

ありがとう

0 投票する
4 に答える
6386 参照

python - Tornado と Prototype を使用した非同期 COMET クエリ

Tornado と JS Prototype ライブラリを使用して単純な Web アプリケーションを作成しようとしています。したがって、クライアントはサーバー上で長時間実行されるジョブを実行できます。このジョブが非同期で実行されることを望みます。これにより、他のクライアントがページを表示してそこで何かを実行できるようになります。

これが私が持っているものです:

サーバー部分です。メインビューがあります(小さな挨拶、現在のサーバー時間、および実行時間の長いジョブを実行する ajax クエリの URL が表示されます。ボタンを押すと、実行時間の長いジョブが実行されます。サーバーがハングします :(このジョブは実行中です。テンプレート ページは次のとおりです。

私は何を間違っていますか?Tornado と Prototype (または jQuery) を使用してロング プーリングを実装する方法

PS: チャットの例を見てきましたが、複雑すぎます。それがどのように機能するのか理解できません:(

PSS の完全な例をダウンロード

0 投票する
5 に答える
2226 参照

c# - Tornado のようなオープン ソースの C# ベースのノンブロッキングでイベントベースの Web サーバーはありますか?

コメット ベースのアプリケーションを構築したいと考えており、最大 1000 の同時接続を維持できるようにしたいと考えています。私が理解しているように、Tornado には、リクエストごとに 1 つのスレッドを生成しないという利点があるため、何千もの長いポーリング リクエストを簡単に処理できます。

0 投票する
1 に答える
571 参照

safari - トルネードストリーミング:SafariとChromeでflush()が遅れています(Firefoxは問題ありません)

SafariとChromeでは、特定の回数のフラッシュが完了するまで、flush()の更新がページ上でライブで更新されるのを確認できません。または、Safariで完全にハングする場合があります。ただし、フラッシュアップデートはFirefoxですぐに機能します。

私はいくつかのことを知りたいです:

1)SafariとChromeがフラッシュの更新で最初に遅れ、その後、フラッシュをスパムした後、突然すべてが正常に機能するのはなぜですか?

2)flush()は、finish()を使用してから再ポーリングするよりも、サーバーのパフォーマンスが大幅に向上しますか?いくら?

0 投票する
1 に答える
2147 参照

asynchronous - Tornadoはノンブロッキング非同期スタイルでCassandraと通信できますか?

私は非常に多くのクライアント要求を処理しなければならないWebプロジェクトに取り組んでいます。そこで、Cassandraとtornadoの使用を検討しています。Tornadoには、http Non-Blockingリクエストを実行できる組み込みクライアント(tornado.httpclient.AsyncHTTPClient)があるようです。ただし、CassandraはThriftプロトコルを使用します。スリフトを使用して、カサンドラに征服している間、トルネードはブロックされているようです。

誰か経験がありますか?どうしたらいいか提案してください。または、この目的のためのアドオンモジュールはありますか?

ありがとう。

0 投票する
5 に答える
3287 参照

chat - チャットアプリケーション:pubsubhubbub vs xmpp

チャットアプリケーションを構築するための最適なスタックがわかりません。現在、私は2つの主なオプションを考えています。

  • フェイスブック竜巻
    • 短所:メインのチャットプロトコルxmppを使用せず、pubsubhubbubを使用します
    • 長所:開発のシンプルさが本当に気に入っています(Webサーバー+ Webフレームワーク)。pubsubhubbubも、xmppよりもプロトコルとして単純なようです。そして私はPythonを知っています
  • xmpp + bosch、punjab、ejabberd
    • 短所:erlangがわからない; 全体的に開発するのは少し難しいようです
    • 長所:xmppプロトコルを使用します

チャットアプリには次のものが必要です。

  • プライベートメッセージ
  • パブリックルーム
  • 個室
  • 部屋のチャット履歴(永久ではなく、最後のn個のメッセージのみ)
  • html埋め込み
  • チャットルームへのURL

どちらのオプションもスケーラブルに見えるので、それほど心配する必要はありません(Amazonのec2でもアプリを実行することを考えています)。トルネードを使用してxmppサーバーを構築するプロジェクトがあることは知っていますが、本番環境で使用する準備ができておらず、期限はそれほど長くありません。基本的に私の主な心配事は開発のしやすさですが、後でpubsubhubbubを使用してチャットアプリを開発したことを後悔していますが、RESTがSOAPに取って代わったため、PubSubHubbubが最終的にXMPPに取って代わる可能性があることをどこかで読みました。

0 投票する
5 に答える
7860 参照

google-app-engine - GoogleAppEngine-安全なCookie

memcacheベースのセッションのアイデアが好きではなく、ユーザーにGoogleアカウントを作成するように強制するというアイデアも好きではないため、GoogleAppEngineでCookieベースの認証/セッションを行う方法を探していました。 Webサイトを使用します。Tornadoフレームワークからの署名されたCookie関数について言及している誰かの投稿に出くわしましたが、それは私が必要としているもののようです。私が念頭に置いているのは、ユーザーのIDを改ざん防止Cookieに保存し、リクエストハンドラーにデコレーターを使用してユーザーの認証ステータスをテストすることです。副次的な利点として、ユーザーIDをリクエストハンドラーで使用できるようになります。データストアの仕事など。概念は、ASP.NETのフォーム認証に似ています。このコードは、Tornadoフレームワークのweb.pyモジュールから取得されます。

docstringsによると、「Cookieに署名してタイムスタンプを付け、偽造できないようにします」および「検証された場合は指定された署名済みCookieを返すか、Noneを返します」。

App Engineプロジェクトで使用しようとしましたが、リクエストハンドラのコンテキストでこれらのメソッドを機能させるための微妙な違いがわかりません。FriendFeed開発者が導入した機能を失うことなく、これを行う正しい方法を誰かに教えてもらえますか?set_secure_cookieとget_secure_cookieの部分が最も重要ですが、他のメソッドも使用できると便利です。

uid = 1234 | 1234567890 | d32b9e9c67274fa062e2599fd659cc14

パーツ: 1。uidは
キーの名前です2.1234は
明確な値です3.1234567890は
タイムスタンプ
です4.d32b9e9c67274fa062e2599fd659cc14は値とタイムスタンプから作成された署名です

0 投票する
1 に答える
1454 参照

comet - ツイステッドやトル​​ネードとの違いは?

Comet Web サーバーを使用して、単純なブラウザー チャットを作成する必要があります。

それで、Twisted と Tornado を見つけました。

違いはなんですか ?

0 投票する
4 に答える
19663 参照

ajax - Tornado Web サーバーで Django を使用するにはどうすればよいですか?

Tornado Web サーバーで Django を使用するにはどうすればよいですか?