web-dev-qa-db-ja.com

プッシュ通知の最も簡単な方法

RoRで記述されたアプリの1つにリアルタイムのプッシュ通知を実装したいと思いました。 nodejs、nowjs、express、またはsocketioの経験はありません。

リアルタイムプッシュ通知システムを実装する最も簡単な方法は何でしょうか?

5
whatf

http://railscasts.com/episodes/260-messaging-with-faye

この質問から: https://stackoverflow.com/questions/5616614/how-would-you-create-a-notification-system-like-on-so-or-facebook-in-ror =

私の個人的な見解は、アーキテクチャ的に最も広く普及しているソリューションの1つはロングポールまたはコメットですが、開発の観点からは、それは物事を行う方法の一部であるという意味で最も簡単です。単に、バックエンドが負担しなければならない負荷のために、キュー/ pubsubシステムにははるかに多くのものが存在します。

個人的には、ActiveMQサーバーや他のメッセージキューソリューションをプラグインすることも検討します。クライアントごとに排出できるユーザーごとのキューの概念があり、排出するJS APIがある限り、おそらくRuby/REST PushへのAPIであり、動作します。

繰り返しますが、これは私の個人的な見解です。そうですが、ロングポーリングはオプション(またはsocket.IOはオプション)になる可能性がありますが、主要な部分であっても、方程式の一部にすぎません。

3
Aadaam

最も簡単の方法は、ロングポールを使用することです。ただし、これはプッシュではありません。ロングポーリングは通常のリクエストであり、タイムアウトが長くなります。メッセージがあれば、要求に答えます。クライアントは回答を受け取り、次のリクエストを開始します。この方法では、ほとんどの場合、オープンリクエストがあり、回答を待ちます。

1
Bruno Schäpper

pubsubhubbub の優れた人々は、RSSフィードを使用した優れたソリューションを持っています。 「PubSubHubBub」は、リアルタイム通知用の新しいプロトコルです。

つまり、アプリでリアルタイム通知をプッシュできるようにする方法は次のとおりです。

  • RSSフィードでアプリを有効にする
  • フィードをPubsubhubbub hub に登録する必要があります
  • サブスクライバーはハブからリアルタイム(またはリアルタイムに非常に近い)の更新を受信します

このテーマに関する包括的なプレゼンテーションについては、この youtube video を参照してください。

0
lwm

Github( link )に Socket.IO のポートを見たことがあります。使えると思います。

Socket.IO は、リアルタイムプッシュアプ​​リを実行する最も簡単な方法です。これにより、プッシュに使用されているトランスポートメカニズムから抽象化されます(詳細については、リンクを参照してください)。

Socket.IO を使用する利点は、使用されている 基になるトランスポート を気にする必要がないことです。ドキュメントは非常にシンプルですが、非常に 詳細 です。

0
Avinash R

Nowjsの作成者によって作成された Bridge を見てください。 RailsアプリまたはNode.jsアプリ、さらにpythonアプリ。は多くの言語とプラットフォームをサポートしており、1日に何十億ものメッセージを処理できる非常に堅牢なシステムです。

0
Darshan Shankar

PushRadar を見てください。クライアントに通知を即座に配信し、数十万の同時接続にスケーリングできます。使用可能なビルド済みの Rubyライブラリ があります。また、このサービスに固有なのは、エンドユーザーをWebサイトまたはWebアプリで実行したアクション、地理的な場所(国および大陸)、IPアドレス、Webブラウザー、およびユーザーIDでターゲットにすることができるという事実です。

例:

radar.target_country('US').target_not_action('live-chat').broadcast('test-channel',
{message: 'Would you like to talk to one of our customer support team members on live chat?'})

免責事項:私はPushRadarの創設者です。

0
Anthony