Добрый день.
Использую связку Redis + socket.io + laravel-echo server
Если пользователь в сети - все ок. уведомления приходят. Но задача стоит - выводить непрочитанные уведомления, если пользователь был оффлайн. Сообщения помещаю как прочитанные при закрытии через ajax
Т.к. Redis - только публикует сообщение в канал и ему все равно - есть там кто то или нет.
Для этого сделал модель Notification
public static function publish($userId, $data) {
self::create([
'userId' => $userId,
'data' => $data
]);
Redis::publish('private-user.'.$userId, json_encode($data));
}
и соотвественно в коде, где надо уведомить вызываю
Notification::publish($user->id, $data);
Все отлично. но не могу найти как отловить на бэкенде - присоединение пользователю к каналу - чтобы получить все непрочитанные сообщения и отправить ему? есть ли у laravel-echo-server - события?
или просто в базовый контроллер - добавить чтение непрочитанных сообщений и уведомления?
Или я вообще не туда копаю?
Спасибо