1

HTML ドキュメントをリアルタイムで変更したい。
イベントで変数が変化すると、HTTPドキュメント(.erbファイル)も一緒に自動的に変化するはずです。

#controller.rb

puts("Downloading...")

bt = RubyTorrent::BitTorrent.new("public/files/ubuntu.torrent")
bt.on_event(self, :complete) { @donemessage="Done!" } #<-- This event


#index.html.erb
<h1>Transfers</h1>
<p><%= @donemessage %></p> <!-- <- This must be changed -->

どうやってやるの?

4

1 に答える 1

0

これは決して簡単な作業ではありません。しかし、一般的にアプローチは次のとおりです。

  1. クライアント(簡単にするために、ブラウザを考えてください)は、特定のオブジェクトの状態変化について知りたいことをサーバーに通知する必要があります。つまり、特定のオブジェクトで発生するイベントをリッスンするようにサブスクライブする必要があります。
  2. 状態を変更する可能性のあるすべてのオブジェクトは、特別な場所に配置する必要がありqueueます。
  3. サーバー側では、queueリゾルバーは、キュー内の指定された(次の)オブジェクトを処理した後、サブスクライブされたすべてのクライアントにオブジェクトの新しいステータスについて通知する必要があります。
  4. クライアントに通知されるようになったので、受け取ったオブジェクトに関する新しいデータに基づいて、さらにアクションを実行できます。たとえば、クライアントはページのhtmlの一部を更新できます。

繰り返しになりますが、これはそれほど単純ではないため、ここで詳細に話すことはできません。

このトピックに関する詳細情報を入手するには、次のプロジェクトを参照してください。

  1. 流星
  2. EventMachine
于 2012-05-23T09:42:04.927 に答える