Я решил внедрить уведомления в реальном времени в мое приложение.
Уведомления должны появляться при определенных событиях, большинство из которых должно запускаться при обновлении таблиц в базе данных.
Чтобы это происходило в режиме реального времени, я в настоящее время использую бесплатную учетную запись с pusher, и я готов обновиться, если и когда приложение масштабируется.
Однако я довольно растерялся относительно того, как запускать события Laravel 5 при обновлении таблицы.
В настоящее время у меня есть триггеры в базе данных, которые добавляют записи в notifications
таблица, когда когда-либо обновления сделаны для определенных таблиц. В идеале, если бы запись была добавлена сюда, у меня возникнет событие Laravel 5, а это, в свою очередь, будет использовать толкатель для мгновенной отправки уведомления.
Кто-нибудь может предложить мне направление или хороший учебник?
По сути, мне нужна ясность в отношении того, где лучше всего проверить, чтобы обновления были успешно внесены в базу данных. События Laravel могут быть вызваны каждый раз, когда вызывается метод -> save (), но в случае уведомлений эта таблица обновляется на основе триггеров базы данных, поэтому никакой код не релевантен.
Предполагая, что когда вы говорите триггеры базы данных, вы имеете в виду сохранение событий Laravel, а не фактические триггеры базы данных, вы можете сделать что-то вроде этого:
class Notification extends Model {
public static boot() {
parent::boot();
static::created(function(Notification $notification) {
event(new PusherEvent());
});
}
}
class OtherModel extends Model {
public static boot() {
parent::boot();
static::updated(function(OtherModel $model) {
Notification::create();
});
}
}
OtherModel
Класс представляет собой представление всех других моделей в вашем приложении, которые имеют этот триггер для создания уведомления. Однако если ваш триггер является фактическим триггером базы данных, это не сработает, и я рекомендую вам перейти к красноречивому способу создания триггера.
Я недавно побежал Создание приложений Laravel в реальном времени с мастерской Pusher на Лараконе ЕС. Учебные занятия (связанные с выше и с раздел на уведомления) проведет вас через то, как вы можете интегрировать Pusher через библиотеку мостов или встроенную в Pusher Event Broadcaster (в Laravel 5.1 и выше).
Он не охватывает взаимодействия с базой данных, но очень краткий обзор обычной стратегии запуска уведомления: