Push-Benachrichtigungen mit Socket.IO und PHP

Die Idee / der Kontext:

Ich denke darüber nach, meinen Usern ein Nettes zu gebenwenig zusätzliche Funktion: Ich möchte Push-Benachrichtigungen hinzufügen. Dies ist der Anwendungsfall:

Leute haben ein Gästebuch auf ihrer Profilseite. Wenn jemand eine Nachricht in das Gästebuch eines Benutzers schreibt, erhält dieser Benutzer eine Push-Benachrichtigung (wenn er natürlich online ist). Wenn er nicht online ist und das nächste Mal online ist, werden die Benachrichtigungen einfach aus der Datenbank abgerufen.

Ich habe darüber nachgedacht, dies mit Socket.IO zu tun, das auf einem Node.JS-Server ausgeführt wird. Meine aktuelle Anwendung ist mit PHP erstellt (so dass das Posten usw. von PHP übernommen wird).

Alle Online-Benutzer stellen eine Verbindung mit Socket.IO her, um auf ihre eigenen Benachrichtigungen zu warten. Ihr Socket wird in einem Array oder Hash auf dem Server gespeichert.

Dies ist der Fluss, den ich im Sinn habe:

UserA schreibt eine Nachricht in das Gästebuch von UserBSocket.IO soll eine Benachrichtigung an UserB senden (falls online, so bekannt bei Socket.IO)Speichern Sie die Nachricht in DB

Das Problem hier ist die "Socket.IO soll eine Benachrichtigung ausgeben'-Teil. Ich würde einen Weg brauchen, dies von PHP aus zu tun, weil ich willder Server diese Benachrichtigung zu senden undnicht der Benutzer das ist das posten der nachricht. Warum fragst du? Ich möchte verhindern, dass böswillige Benutzer falsche Benachrichtigungen erstellen. Im Pseudocode würde die PHP-Anwendung also so aussehen:

// 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);

Die Fragen):

Was denkst du darüber? Gibt es bessere Möglichkeiten, dieses scheinbar kleine Feature zu implementieren? Und auch, wie würde ich das machensocketio_emit() Mit anderen Worten: Wie kommuniziere ich in PHP mit einem Socket.IO-Server?

Danke vielmals!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage