سلام دوستان.
قبل از هر چیزی عذرخواهی میکنم بابت اینکه برای دومین بار هستش که این تاپیک رو ایجاد میکنم چون هیج جوابی پیدا نکردم مجبور شدم.
کل اینترنت رو گشتم و به جواب نرسیدم امیدوارم شما بتونید کمک کنید.
من با استفاده 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
دوستان امیدوارم که توضیحات کامل بوده باشه لطفا کمک کنید :(
@ali.bayat
بله
شاید پاسخ شما همینجا باشد
پیوند زیر رو بررسی کنید
https://github.com/laravel/echo/issues/55
@ali.bayat
به نتیجه ای نرسیدم :(
@amirhasanghafori.tabar
هندشیک به درستی اعمال میشه ؟
زمانی که صفحه لود شد توی debug console پنل پوشر اتصالتون رو نمایش میده؟
@sinaQasemi
بله نمایش داده میشه و اتصال میشکلی نداره