На моем сайте Laravel у нас есть два охранника admin
а также customer
таблицы этого охранника ->customer table
а также admin table
,
Я хотел бы отправить уведомление от customer
для admin
через laravel broadcasting
это мои коды в файле .js в админ
файлы server.js:
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001',
});
* i have a admin by id=2 *
Echo.private('App.Models.Admin.2')
.notification((notification) => {
console.log(notification.type);
});
и в охранник:
\Notification::send(Admin::find(2) , new SimpleAlert('hey bro'));
SimpleAlert.php:
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'message' => $this->message,
'type' => 'broadcast'
]);
}
Итак, я запускаю laravel-echo-server и открываю две вкладки Google Chrome, одну для admin guard
и еще один для customer guard
и вошел в оба охранника.
Нет ошибки в консоли. Нет ошибок в customer sending notification
, но `администратор не получает уведомление.
Проблема:
Laravel-эхо-сервер, показывая это, когда я в admin guard
Клиент не может быть аутентифицирован, получил статус HTTP 403
Помоги мне, пожалуйста.
Что вы можете сделать, это добавить авторизацию в routes/channels.php
, Попробуй это
Broadcast::channel('App.Models.Admin.{userId}', function ($user, $userId) {
return $user->id === $userId;
});
Других решений пока нет …