0

私は、ユーザーがログインしている場合のようなインターフェイスを構築しようとしているプロジェクトに取り組んでおり、その間にサーバーにそのユーザーへのメッセージがある場合、ユーザーはすぐに通知を受け取ります (facebook のように)。どこから始めればいいの?基本的なアイデアを教えてください。

実装言語としてPHPを使用しています

現在、PHP、NodeJS、socket.io を組み合わせてリアルタイム通知を実現するためのアドバイスを探しています。現時点では、Node と socket.io でほとんど何もしていないので、これを達成するための最善の方法に途方に暮れています。私はいくつかの基本的なリスニングを行いましたが、極端なことは何もしませんでした。

今のところ、私の質問は次のとおりです。

  1. socket.io は新しい通知をどのように認識しますか? PHP はデータ (投稿が作成されたとします) を socket.io に送信し、そこから接続されたクライアントにブロードキャストする必要がありますか?
  2. socket.io はどのクライアントが通知を必要としているかをどのように認識しますか?

他に何があるかわかりません。現時点では、これは私にとって少し多すぎます。通知がどのように配布されるかについて頭を悩ませることはできません。

アドバイスをいただければ幸いです。詳細なウォークスルーは期待していません。正しい方向へのプッシュ、またはすべてがどのように噛み合っているかについての知識だけです。

4

1 に答える 1

3

WebSocketとは何か、WebSocketがどのように機能するか、どのブラウザーがサポートするかを読むことから始めます。インターネットはこの情報でいっぱいです。

phpの実装については、http://socketo.me/を参照してください。PHPはソケット通信には最適ではありません。'通常のもの'にはnodejs+socket.ioとphpを使用します。テクノロジーを混ぜることを恐れないでください。すべての問題にハンマーはありません。

編集

nodejsを知らない場合は難しいかもしれませんが、時間をかけて学ぶ価値はあります。

いくつかのアイデア:

データベースに通知を含むテーブルを作成し、イベントが発生した場合、例:投稿はそこに追加レコード(新しい投稿の数やuser_idなど)を追加し、nodejs側からデータベースフェッチデータベースに接続して、現在のユーザーの通知を探します。

次に、nodejsはリスニングクライアントに変更について通知します(socket.io)

ユーザーが新しい投稿をレビューすると、カウンターが0に更新され(新しいメッセージがある場合にFacebookが行うのと同様のことです)、nodejsは新しい投稿がないことを認識するため、通知するものはありません。

最も難しい部分は、現在のユーザーセッションを取得することです。

関連するもの:

http://socket.io/

node.jsで使用できるMySQLドライバーは何ですか?

Cookieを介してphpとnode.jsの間でデータを安全に共有する

socket.io/nodejsのユーザーを認証します

指定されたユーザーIDに送信するソケットIO

于 2012-08-31T06:25:35.060 に答える