1

チャットアプリ(リアルタイムアプリ)のようなサービスを作りたいです。

私の調査からわかることから、BlazeDS好ましい方法ですが、それには Java と Java EE が含まれます。また、最新の Ruby の結果は 2009 年から 2010 年のもののようで、古い可能性があります。

プッシュ通知を Flex と統合するためにアクティブに維持されている Ruby/Rails ソリューションはありますか?

4

4 に答える 4

7

現状

Flex を使用する必要がありますか? HTML5 websocketsは、初期段階ですが成長しているテクノロジであり、現在実装されています。Flex の日数は数えられます。しかし、websockets はまだ IE でネイティブにサポートされていません。

  • em-websocketは、eventmachine に基づく Ruby Websocket サーバーです。サービスPusherはそれに基づいています。
  • Fayeは WebSocket サーバーおよびクライアントです。(レールキャスト)
  • CrampSockyなどの他の Ruby 実装があります。
  • Node などの他のテクノロジーのサーバーを受け入れる場合は、すぐに使用できる Ruby または Javascript クライアントを備えたサーバーが多数あります。

更新: しばらく前に Flex で同様のことを行うことを検討し、Flex on Railsのコピーを入手したことを言及するかもしれません。この本のサーバー プッシュの例ではJuggernautを使用していますが、残念ながらそれ以上の開発は中止されています。著者は、Server-Sent Events (SSE) によって Juggernaut が冗長になると述べています。websockets の状況と同様に、 IE を除くすべての主要なブラウザーがそれらをネイティブにサポートしています。

JavaScript を使用してこれらの不足している機能をブラウザーにもたらすshim (「ポリフィル」) があります。たとえば、jQuery Graceful WebSocketは、Websocket クライアントを実装する jQuery プラグインですが、AJAX ポーリングにフォールバックするため、機能は IE でも機能しますが、すぐには機能しません。Websocket サポートを検出するため、ブラウザーが Websocket をサポートするとすぐに使用されます。

ギャップを埋める

私たちは、Flash の日没の時代にいる移行期にいるように見えますが、その代わりのテクノロジはまだ広くサポートされていません。ギャップを埋めるライブラリが 1 つあります: Socket.IOです。このライブラリは、実行時に最も有能なテクノロジ トランスポートを選択します。存在する場合は Flash を使用しますが、必要に応じて Websockets、AJAX ロング ポーリング、AJAX マルチパート ストリーミング、「永遠の iframe」を使用することもできます。これにより、幅広いブラウザ サポートが提供されます。

  • IE 5.5+
  • サファリ 3+
  • グーグルクローム 4+
  • Firefox 3+
  • オペラ 10.61+
  • iPhone サファリ
  • iPad サファリ
  • Android ウェブキット
  • WebOS ウェブキット

これは実際には、Flash/Flex または WebSockets 単独よりも幅広い互換性です。Socket.IO はサーバーとクライアントの両方で Javascript で実装されるため、Node.js などのサーバー側の Javascript ランタイムが必要です。

可能な解決策

現在、Rails 3 -> Flex ソリューションへの参照はあまりないようですが (ご存じのように)、Ruby/Rails と Socket.IO の組み合わせには牽引力があるようです。

Socket.IO を使用して Rails アプリにチャットを追加したい場合は、Socket.IO を使用して Rails 3 でチャット アプリを作成している Liam Kaufman による素敵なリファレンス ブログ投稿があります: http://liamkaufman.com/blog/2012/02 /25/adding_real-time_to_rails_with_socket.IO_nodejs_and_backbonejs_with_demo/

上記の Cramp サーバーにサポートを追加するsocket.io gemもあります。

Rails 3 と Socket.IO の組み合わせに取り組んでいる他の人たちとのスタックオーバーフローの質問もあるようです。

TL;DR の要約

Rails から Flex への直接接続を行っているという兆候はあまり見られませんが、Rails と Socket.IO の組み合わせが最も有望なソリューションが他にもあります。

于 2012-08-30T22:47:48.500 に答える
3

Ruby の世界に住みたい場合は、通常のWebSocketを使用して Flex アプリケーションと通信できます。見栄えはよくありませんが、うまくいくので、Java バックエンドを避けることができます。これは、BlazeDS に構造を飛ばすように指示するよりもはるかに未加工ですが、実行可能なはずです。

Flex クライアント側には、Kaazingによって作成されたライブラリがあり、WebSocket サーバーにバンドルされています。それらの WebSocket サーバーの 1 つをダウンロードすると、client-libs フォルダーに、em-websocket (または実際には Websocket 技術) と通信するために使用できる swc (ドキュメント付き) があるはずです。

以上のことから、BlazeDS や GraniteDS ほどのスケーラビリティはありませんが、小規模な実装やデモでは機能するはずです。

于 2012-09-03T15:25:54.737 に答える
0

RestfulX gem&Flexフレームワークを使用できます。それが私がRails/Flexに使用しているものです。

于 2012-11-07T19:06:52.480 に答える
0

https://github.com/rubyamf/rubyamfまたはhttps://github.com/victorcoder/rubyamf_pluginを使用できます

ただし、rubyamf と ruby​​amf_plugin は RTMP をサポートしていないため、リアルタイム メッセージングで問題が発生します。

于 2012-09-05T13:37:45.953 に答える