Я пытаюсь построить систему уведомлений в реальном времени.
Я использовал Laravel-Notifications и laravel-echo-server.
когда я слушаю уведомление с помощью команды запуска в терминале laravel-echo-server start, то происходит ошибка в частном канале:
⚠ [4:36:43 PM] — H12aWYBsF5UdR5NYAAAH не может быть аутентифицирован для private-App.Domain.User.User.1
Клиент не может быть аутентифицирован, получил статус HTTP 404
КОД
// channel.php
Broadcast::channel('App.Domain.User.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;});
// Код файла уведомлений (ListingApproved.php)
class ListingApproved extends Notification implements ShouldQueue {
use Queueable;
private $listing;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct(Listing $listing)
{
$this->listing = $listing;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['database', 'broadcast'];
}
public function toArray($notifiable)
{
return $this->listing->id;
}
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'invoice_id' => $this->listing->id
]);
}}
// интерфейсный скрипт для прослушивания уведомлений
Echo.private('App.Domain.User.User.' + '{{ auth()->user()->id }}')
.listen(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated", (notification) => {
console.log('yes');
console.log(notification.type);
});
Это может быть связано с вашим эхо-сервером auth host
конфигурации,
Вы можете проверить, например, приложение реального времени Laravel с эхо-сервером Laravel и Redis,
Пример приложения в реальном времени с Laravel / Redis / Socket.IO / Laravel-Echo
Я надеюсь, это поможет
Других решений пока нет …