アイデア/コンテキスト:
ユーザーにちょっとした追加機能を提供することを考えています: プッシュ通知を追加したいです。これは使用例です:
プロフィール ページにゲストブックがあります。誰かがユーザーのゲストブックにメッセージを投稿すると、そのユーザーはプッシュ通知を受け取ります (もちろんオンラインの場合)。彼がオンラインでない場合は、次にオンラインになったときに、DB から通知を取得するだけです。
Node.JSサーバーで実行されているSocket.IOでこれを行うことを考えていました。私の現在のアプリケーションは PHP で構築されています (したがって、投稿などは PHP によって処理されます)。
すべてのオンライン ユーザーは、Socket.IO を使用して接続し、自分の通知をリッスンします。それらのソケットは、サーバー上の配列またはハッシュに保存されます。
これは私が念頭に置いている流れです:
- UserA が UserB のゲストブックにメッセージを投稿する
- Socket.IO が UserB に通知を発行するようにします (オンラインの場合、Socket.IO で知られています)。
- メッセージをDBに保存
ここでの問題は、「Socket.IO に通知を発行させる」部分です。メッセージを投稿しているユーザーではなく、サーバーがこの通知を発行するようにするため、PHP からこれを行う方法が必要です。なぜ聞くの?悪意のあるユーザーが偽の通知を作成できないようにしたい。したがって、擬似コードでは、PHP アプリケーションは次のようになります。
// do some validations here ...
// This is the message that was posted
$message = array(
'from' => 'UserA',
'to' => 'UserB',
'msg' => 'Hello you'
);
// Send a notification to the user by emitting an event
socketio_emit('notification', json_encode($message));
save_in_db($message);
質問):
これについてどう思いますか。この一見小さな機能を実装するより良い方法はありますか? また、socketio_emit()
PHP でどのように行うのでしょうか。つまり、PHP を使用して Socket.IO サーバーと通信するにはどうすればよいでしょうか。
どうもありがとう!