0

バックグラウンドで別のサービスと非同期通信を行う Rails アプリケーション (JRuby) を作成する必要があります。ブラウザ セッションごとに 1 つの接続が必要です。(TCP 接続を開く必要はありませんが、セッションの終了後にリソースを解放する必要があります。) バックグラウンド サービスとの通信は、厳密な要求と応答ではありません。いつでも、サービスから rails アプリにメッセージが送信される可能性があります。

また、プロトコルを実装する必要があります。どうすればいいですか?Ruby on Rails 用の非同期フレームワーク (Twisted や Node.js など) はありますか? いくつかの出発点が必要です。

Python でクライアント側プロトコルの簡単な実装を既に作成しました。実際、完全なプロトコルは私が作成した (サーバーは JavaScript で記述されている) ため、プロトコルを完全に変更することができました。ただし、問題の性質上、非同期性を変更することはできません。

また、非同期の変更をブラウザーにプッシュするには、XHR ポーリング/WebSockets が必要です。そのための宝石/ハウツー/チュートリアルはありますか? リクエストをスリープに設定することはできません(リソース!)。

背景についてもっと知りたい場合: Rails アプリケーションはアクセシビリティ ツールです。それが通信するサービスは、実際には Web ページをロードしてレンダリングする Firefox アドオンです。非同期の性質は、(i) フレーム、ポップアップ ウィンドウ ( window.open()window.alert()、...)、Rails アプリに伝達する必要がある DOM ツリーへの動的な変更、リダイレクト (フォーラムでポーズをとった後など) などに由来します。 RDF 処理に Jena (Java) フレームワークを使用する必要があるため、JRuby を使用します。

4

2 に答える 2

0

Juggernaut 2を見てください。まさにこれを行います(ノードも使用します)。サーバーから接続されているすべてのクライアントにメッセージをプッシュするために使用していますが、うまく機能します。実装は簡単でした (ただし、readme は特定の事項について少し不明確です)。サポートが必要な場合はお知らせください。

于 2010-12-07T22:37:11.450 に答える
0

Ruby On Rails も非同期フレームワークです。シンサーバーで。Node.js または Twisted は非同期フレームワークではありません。イベントフレームワークだけがあります。

ruby では Event Framework は EventMachine であり、シンサーバーはそれを使用します。Rack::middleware で Websocket を作成して使用できます。

于 2010-10-20T17:25:25.103 に答える