L'idea/contesto:notifiche push che utilizzano Socket.IO e PHP
sto pensando di dare i miei utenti un bel po 'di caratteristica in più: voglio aggiungere le notifiche push. Questo è il caso d'uso:
Le persone hanno un libro degli ospiti sulla pagina del loro profilo. Quando qualcuno posta un messaggio nel guestbook di un utente, quell'utente riceverà una notifica push (se è online ofcourse). Se non è online, la prossima volta che verrà online, estrarremo le notifiche dal DB.
Stavo pensando di farlo con Socket.IO in esecuzione su un server Node.JS. La mia attuale applicazione è costruita con PHP (quindi la pubblicazione ecc. È gestita da PHP).
Tutti gli utenti online si connetteranno utilizzando Socket.IO per ascoltare le proprie notifiche. Il loro socket verrà salvato in un array o hash sul server.
Questo è il flusso che ho in mente:
- UtenteA invia un messaggio sul guestbook di UserB
- Fare Socket.IO emettono una notifica a UtenteB (se on-line, in modo conosciuto da Socket.IO)
- salvare il messaggio nella DB
il problema qui è il 'fanno Socket.IO emette una notifica' -parte. Avrei bisogno di un modo per farlo da PHP, perché voglio il del server per emettere questa notifica e non l'utente che sta postando il messaggio. Perchè lo chiedi? Voglio impedire agli utenti malintenzionati di creare notifiche false. Quindi, in pseudocodice l'applicazione PHP sarebbe simile a questa:
// 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);
La domanda (s):
Quali sono i tuoi pensieri su questo? Ci sono modi migliori per implementare questa caratteristica apparentemente piccola? E inoltre, come potrei fare lo socketio_emit()
in PHP, in altre parole: come faccio a comunicare con un server Socket.IO usando PHP?
Grazie mille!
Le notifiche push vengono mantenute mantenendo una connessione costantemente aperta al server. –
http://stackoverflow.com/q/6933497/11963 – hangy
@ColeJohnson Immagino che tu ti stia riferendo a lunghi sondaggi. La domanda in realtà è: come faccio a comunicare con un server Socket.IO usando PHP. – EsTeGe