2012-01-14 9 views
8

私は様々なモバイルクライアント(iOS、アンドロイドなど)へのAPIによって主に公開されるレールアプリに取り組んでいます。アプリケーションには、(api呼び出しを介して)サーバーにデータを送信するユーザーが含まれますが、私が含めるのは、このデータを他のクライアントにプッシュする機能です。一般的な考え方はメッセージングアプリケーションと似ています。メッセージングアプリケーションでは、クライアントからサーバーにメッセージを送信し、受信者はサーバーからメッセージをプッシュします。railsアプリからクライアントにデータをプッシュ

私が現在知っている唯一の方法は、サーバーを常にポーリングすることですが、これ以上の技術ソリューションが必要です。何か案は?

答えて

4

あなたが簡単かつ安全にウェブやモバイルアプリへのスケーラブルなリアルタイム機能を追加、すばやくhttp://www.pusher.com

プッシャーでホストされているAPIをチェックアウトする必要があります。

自己ホスト型のソリューションが必要な場合は、プッシャークライアントライブラリのサーバー実装であるslanger gem https://github.com/stevegraham/slangerを確認する必要があります。ホスティングされたソリューションが必要だと思うときは、URLを変更するだけです。

Slangerは、Rubyで書かれたプッシャープロトコルのオープンソースサーバー実装です。これは、N個のノード間で水平方向に拡張するように設計されており、加入者がどのSlangerノードに接続されているかに関わらず、同じチャネルに対する加入者は同じSlangerノードに接続する必要はない。特別な設定をしないで複数のSlangerノードをロードバランサの背後に置くことができます。本質的には、拡張が非常に容易になるように設計されています。

+0

おかげで、私はこのプロジェクトのように、自己ホスト型ソリューションを探していたイベントのマシン上this peepcodeのスクリーンキャストをチェックしたいかもしれませんが、主に私の知識を開発するために私の必要性に基づいています – Jack

2

Rubyが、それは宝石のように実装、独自のイベント処理ライブラリのしている:

https://github.com/eventmachine/eventmachine

多分それは私がプッシュするページ内のWebSocketを使用して見てしまうあなたに

4

を支援更新。

Fayeを使用してこれを実装できます。これは、websocketをサポートしていないブラウザでは、長いポーリングやその他の回避策に戻ります。 Fayeは純粋なルビ実装を持っているので、おそらくモデルレイヤへのアクセスを試すことができます。

編集:

はまた、これはRailsのとフェイを組み合わせたプロジェクトです。それはかなり新しいですが、あなたが望むことをするかもしれません。 Faye-Rails

1

他の解決策よりも私はevent machineを好んでいます。 fayeはやや複雑ですが、イベントマシンを使用してより洗練されたコードを書くことができます。

あなたは

関連する問題