2013-07-24 6 views
6

Attualmente sto codificando un sito web Apache/PHP/mySQL abbastanza standard utilizzando Symfony2 e considerando l'utilizzo di Node e socket.io per esigenze particolari: una barra di notifica. Niente di troppo, una notifica è accesa quando hai una nuova richiesta di amicizia, una nuova mail ...Node.js e socket.io per una barra di notifica: sto andando nel modo giusto?

Non mi piace troppo richiedere periodicamente il mio DB da un ciclo Ajax; Mi piacerebbe che questa funzionalità fosse completamente scalabile e con un ingombro minimo.

Quindi sto considerando di avere una singola richiesta periodica sul mio DB, lato server, che alimenta la mia lista di socket aperti nel nodo con una notifica push a ciascun utente interessato.

Sto andando nel modo giusto?

Acclamazioni

+3

MySQL in realtà non ha un buon sistema di notifica push, ma lo fa [Redis] (http://redis.io/). Forse potresti usare un database secondario solo per le notifiche, altrimenti dovrai eseguire un sondaggio aggressivo. – tadman

risposta

3

Sei sicuramente sulla strada giusta, ma vi consiglio di mettere la roba notifica nella vostra applicazione, piuttosto che il polling del database. Ad esempio di richiesta di amicizia, farlo quando la richiesta di amicizia viene inviata:

function send_friend_request($from, $to) { 
    $mysqli->whatever you do with that; 
    send_notification($to, 'You have a friend request!'); 
} 

dove send_notification è un metodo che invia una richiesta POST al server nodejs. Il tuo server nodejs riceve il POST e inoltra il messaggio a qualsiasi cosa stia ascoltando $to.

+0

Eccellente, grazie mille. – heyMcFly

Problemi correlati