0

関連するベスト プラクティス/仕様/文献などを見つけようとしています。XMPP API や websockets チャネルなどの非安静なファサードの背後で安静な API (たとえば、標準の Rails アプリ) を使用するという一般的な問題に対処します。

たとえば、私は安らかな Rails アプリを持っていて、読み取り専用の非同期インターフェイスを公開したいと考えています。Rails アプリが Redis の pubsub チャネルにプッシュし、それが node.js から消費され、websocket チャネルに送信される (1) という非常に単純なものです。さて、この非同期 API を読み取り/書き込みにするにはどうすればよいでしょうか? クライアントが Websockets チャネルを介してサーバーに送信することを考えています。基本的には、シリアル化された http 要求または軽量の json エンコードされたペイロードに相当するものであり、それらは Resque キューに送られ、メイン アプリから解析されます。しかし、私が構築できる以前の作業/仕様/アーキテクチャがあるかどうか、または単に見落としている可能性のあるよりエレガントなアプローチがあるかどうかを知りたいです。

(1) 明らかに、「websockets」を「xmpp」に置き換えることができ、一般的な懸念事項である非安静なインターフェースの背後にある安静なアプリは引き続き適用されます。

助けてくれてありがとう。

4

1 に答える 1

0

呼び出し/応答の方法を除いて、実際に違いがあるかどうかはわかりません。

たとえば、Web の世界では、通常、REST インターフェースへのすべての呼び出しはブラウザーから行われ、状態の追跡はサーバー側で Web クライアントを扱うときに行われます。そのため、クライアント インターフェイスは通常、サーバーが呼び出しのコンテキストを再構築できるように、大量のデータを (直接または Cookie を介して間接的に) 送信します。

XMPP (bosh または direct) または Websocket を介して呼び出しが行われる場合は、同じことを行う必要があります。これは、クライアントが中間の XMPP コンポーネントまたはボットと通信し、リクエストを構成するスタンザを受け取り、保存されている状態を収集するためです。それを REST に渡します。

最も基本的な形式では、XMPP ボット/コンポーネントは着信スタンザを受け取り、それを REST 呼び出しに変換し、その呼び出しを行い、結果をパッケージ化します。

于 2010-08-13T16:50:57.300 に答える