2012-01-25 7 views
0

私は、友達のmmo-guildのコミュニティサイトで働いています。私のスキルを高め、新しいテクニックを学ぶためです。 私のアイデアは、メッセージ/通知/どんなプッシュシステムのala facebookスタイルを構築することです。つまり、誰かにあなたにメッセージを送ると、掲示板の新しい投稿が表示されたり、Facebookのようにちょっとしたお知らせが届いたりします(ページの上部にあるユーザーバーに赤い数字が表示されます)。メッセージプッシュシステムfacebook style

私はgoogleのために何を知りません。これに対する正しい定義である「プッシュシステム」ですか? どうすればいいですか? 私はまた別の質問を見て、node.jsと彗星について読んだ。 これらのテクノロジの概念はわかりやすいです(Javaなどの他の言語から)

メッセージ(使用可能な場合)をクライアントにプッシュするサーバー(node.jsなど)があります。どのように私はクライアントでそのようなプッシュを処理するのですか?リスナーのようなものが必要ですか?答え

答えて

0

ため

おかげで、ブラウザにサーバから「プッシュ」を行うための様々な技術があります。 Wikipediaを参照してください。

初めての試みであるギルドウェブサイトの場合、XMLHttpRequestを使ってサーバーを定期的にポーリングし、新しいデータがある場合はページの内容を更新するのが最も簡単です。

これが機能すると、新しいデータがある場合にのみサーバーが応答する連続的な「長いポーリング」に変更できるため、ネットワークトラフィックが減少し、通知が瞬時に行われます。

1

特定のバックエンド技術を念頭に置いている場合は、realtime web technology guideがよい出発点です。ホストされている、またはホストされているリアルタイム技術を見つけるために、 'php'または 'ruby'を検索してください。

クライアントでこのようなプッシュを処理するにはどうすればよいですか? リスナーのようなものが必要ですか?

これらのすべてのテクノロジで頻繁に使用されるパラダイムは、PubSubです。 PubSubは、異なる技術を使用して異なる方法でクライアント上で実現されます。

クライアントとサーバー間の通信に使用するテクノロジはソリューションごとに異なりますが、WebSocketのベスト・アプローチには非常に多くの動きがあります。しかし、あなたが選んだリアルタイムのWebテクノロジーによって使用されるライブラリは、WebSocketを直接使用することから抽象化されます。

私はあなたがPusher JavaScriptライブラリを使用してデータをサブスクライブする方法を説明します:

var pusher = new Pusher('YOUR_APP_KEY'); // connect 
var channel = pusher.subscribe('my-channel'); 
channel.bind('my_event', function(eventData) { 
    // handle event data 
}); 

プッシャーchannelsを使用して、それが一般的に使用される用語だが、他の技術は、トピックまたは対象としてこれらを参照してください。チャンネルを使用してデータをフィルタリングしたり、特定のトピックに固有のものにすることができます。 「my_football_team」およびイベントは、データをさらにフィルタリングする方法である。 'new_news_item'、 'score_update'