Push Notifications usando Socket.IO e PHP

A ideia / contexto:

Estou pensando em dar aos meus usuários um bompequeno recurso extra: desejo adicionar notificações push. Este é o caso de uso:

As pessoas têm um livro de visitas na sua página de perfil. Quando alguém posta uma mensagem no livro de visitas do usuário, esse usuário receberá uma notificação por push (se ele estiver on-line). Se ele não estiver on-line, na próxima vez que ele entrar online, apenas obteremos as notificações do banco de dados.

Eu estava pensando em fazer isso com Socket.IO em execução em um servidor Node.JS. Minha aplicação atual é construída com PHP (assim a postagem etc. é manipulada pelo PHP).

Todos os usuários on-line se conectarão usando o Socket.IO para ouvir suas próprias notificações. Seu soquete será salvo em uma matriz ou hash no servidor.

Este é o fluxo que tenho em mente:

UserA envia uma mensagem no livro de visitas de UserBFaça o Socket.IO emitir uma notificação para o UserB (se online, assim conhecido pelo Socket.IO)Salvar a mensagem no banco de dados

A questão aqui é a 'faça o Socket.IO emitir uma notificação'-parte. Eu precisaria de uma maneira de fazer isso do PHP, porque eu queroo servidor para emitir esta notificação enão o usuário que está postando a mensagem. Porque você pergunta? Eu quero impedir que usuários mal-intencionados criem notificações falsas. Então, no pseudocódigo, o aplicativo PHP ficaria assim:

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

As questões):

Quais são seus pensamentos sobre isso? Existem maneiras melhores de implementar esse recurso aparentemente pequeno? E também, como eu faria osocketio_emit() no PHP, em outras palavras: como eu me comunico com um servidor Socket.IO usando PHP?

Muito obrigado!

questionAnswers(1)

yourAnswerToTheQuestion