سلام دوستان.
قبل از هر چیزی عذرخواهی میکنم بابت اینکه برای دومین بار هستش که این تاپیک رو ایجاد میکنم چون هیج جوابی پیدا نکردم مجبور شدم.
کل اینترنت رو گشتم و به جواب نرسیدم امیدوارم شما بتونید کمک کنید.
من با استفاده pusher نوتیفیکیشن هام رو ارسال میکنم ( از ایونت استفاده نمیکنم ، از خود notifications استفاده میکنم ) و کد فایلش هم به صورت زیر هستش :
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
class videoProcessStatus extends Notification
{
use Queueable;
public $message;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($message)
{
$this->message = $message;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['database','broadcast'];
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
"status" => $this->message['status'],
"message" => $this->message['message']
];
}
/**
* Get the broadcastable representation of the notification.
*
* @param mixed $notifiable
* @return BroadcastMessage
*/
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
"status" => $this->message['status'],
"message" => $this->message['message']
]);
}
}
و در یکجایی با استفاده از کد زیر نوتیفیکیشن رو ارسال میکنم که به درستی هم ارسال میشه یعنی توی دیتابیس و هم توی pusher دریافت میشه.
$user = User::find(1);
Notification::send($user, new videoProcessStatus($message));
توی pusher به صورت زیر دریافت میشه :
API MESSAGE
Channel: private-users.1, Event: Illuminate\Notifications\Events\BroadcastNotificationCreated
{
"status": "success",
"message": " ویدیو تست با موفقیت در کیفیت 10 پردازش شد!",
"id": "93abf28d-49ef-4490-8aed-626b283fc794",
"type": "App\\Notifications\\videoProcessStatus"
}
حالا مشکل اینجاست که دیگه این پیام توی سایت خودم نمایش داده نمیشه. منظور از puhser هیچی دریافت نمیکنه.
کدی هم که با laravel echo نوشتم به صورت زیر هستش :
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'MY_Code',
cluster: 'ap2',
forceTLS: true
});
Echo.private('App.User.1')
.notification(function (event) {
console.log(event);
});
جالب اینجاست که وقتی از Pusher.logToConsole = true;
استفاده میکنم توی کنسول پیام زیر رو نشون میده :
Pusher : No callbacks on private-App.User.1 for pusher:subscription_error
دوستان امیدوارم که توضیحات کامل بوده باشه لطفا کمک کنید :(
سلام منم به این مشکل بر خوردم آیا مشکلتون برطرف شد؟
من امتحان کردم زمانی که از laravel echo استفاده می کنم هیچ خروجی از pusher دریافت نمی کنیم ولی وقتی از javascript استفاده می کنم به درستی کار می کنه
@amirhasanghafori.tabar
هندشیک به درستی اعمال میشه ؟
زمانی که صفحه لود شد توی debug console پنل پوشر اتصالتون رو نمایش میده؟
php artisan queue:work
رو امتحان کردید؟
BROADCASTDRIVER=log
در .env رو به
BROADCASTDRIVER=pusher
تغییر دادید؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟