Push-уведомления с использованием Socket.IO и PHP
The idea/context:
Я думаю о том, чтобы дать своим пользователям приятныйlittle дополнительная функция: я хочу добавить push-уведомления. Это вариант использования:
У людей есть гостевая книга на странице их профиля. Когда кто-то публикует сообщение в гостевой книге пользователя, этот пользователь получает push-уведомление (если он, конечно, онлайн). Если он не в сети, в следующий раз, когда он выйдет в сеть, мы просто извлечем уведомления из БД.
Я думал об этом с Socket.IO, работающим на сервере Node.JS. Мое текущее приложение построено на PHP (поэтому регистрация и т. Д. Обрабатывается PHP).
Все онлайн-пользователи будут подключаться через Socket.IO для прослушивания своих собственных уведомлений. Их сокет будет сохранен в массиве или хэше на сервере.
Это поток, который я имею в виду:
UserA posts a message in guestbook of UserB Make Socket.IO emit a notification to UserB (if online, so known by Socket.IO) Save the message in DBПроблема здесь заключается в & apos;make Socket.IO emit a notification& APOS; -часть. Мне нужен способ сделать это из PHP, потому что я хочуthe server испустить это уведомление иnot the user это публикует сообщение. Почему ты спрашиваешь? Я хочу, чтобы злоумышленники не создавали поддельные уведомления. Таким образом, в псевдокоде приложение 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);
The question(s):
Что вы думаете об этом? Есть ли лучшие способы реализовать эту, казалось бы, небольшую функцию? А также, как бы я сделалsocketio_emit()
в PHP, другими словами: как я могу общаться с сервером Socket.IO, используя PHP?
Большое спасибо!