سلام خدمت اساتید گرامی:
من به کمک reverb یک broadcast channel ساختم و صرفا میخوام کارکردشو یاد بگیرم.
اما log سمت client دریافت نمیکنم.
کدهامو در اختیارتون قرار میدم تا لطف کنید و راهنمایی کنید.ممنون
controller
public function orderBook($first , $second): void
{
$data = array(
'ticker'=>$first.$second,
'price'=>0,
'last_update'=>Carbon::now()
);
event(new nowOrders(json_encode($data)));
}
event
class nowOrders implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*/
public function __construct(
public string $data
)
{
Log::debug($this->data);
}
/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new Channel('order-channel'),
];
}
}
laravel.log
[2024-04-25 09:25:38] local.DEBUG: {"ticker":"BTCUSDT","price":0,"last_update":"2024-04-25T09:25:38.562880Z"}
[2024-04-25 09:25:39] local.DEBUG: {"ticker":"ETHUSDT","price":0,"last_update":"2024-04-25T09:25:39.901524Z"}
[2024-04-25 09:25:40] local.DEBUG: {"ticker":"BNBUSDT","price":0,"last_update":"2024-04-25T09:25:40.329576Z"}
[2024-04-25 09:25:40] local.DEBUG: {"ticker":"XRPUSDT","price":0,"last_update":"2024-04-25T09:25:40.831400Z"}
[2024-04-25 09:25:41] local.DEBUG: {"ticker":"ADAUSDT","price":0,"last_update":"2024-04-25T09:25:41.272255Z"}
[2024-04-25 09:25:41] local.DEBUG: {"ticker":"SOLUSDT","price":0,"last_update":"2024-04-25T09:25:41.603967Z"}
[2024-04-25 09:25:41] local.DEBUG: {"ticker":"MATICUSDT","price":0,"last_update":"2024-04-25T09:25:41.906951Z"}
[2024-04-25 09:25:42] local.DEBUG: {"ticker":"LTCUSDT","price":0,"last_update":"2024-04-25T09:25:42.208561Z"}
[2024-04-25 09:25:42] local.DEBUG: {"ticker":"TRXUSDT","price":0,"last_update":"2024-04-25T09:25:42.494205Z"}
[2024-04-25 09:25:42] local.DEBUG: {"ticker":"AVAXUSDT","price":0,"last_update":"2024-04-25T09:25:42.792838Z"}
orderbook.vue
function orderBook(coin) {
onMounted(async () => {
try {
await axios.post(`/api/users/orderBook/${coin.tickers.first.toUpperCase()}/${coin.tickers.second.toUpperCase()}`)
} catch (error) {
console.error('Error fetching data:', error)
}
window.Echo.channel('order-channel')
.listen('nowOrders', e => {
console.log(e)
})
})
}
marketCap.forEach(coin => {
orderBook(coin)
})
نتیجه در ws log مرورگر:
{"event":"pusher_internal:subscription_succeeded","data":"{}","channel":"order-channel"}
با تشکر از شما عزیزانی که وقت میذارید و راه حل ارائه میدید.
راه حل رو خودم پیدا کردم:
در فایل .env
QUEUE_CONNECTION=database
باید به :
QUEUE_CONNECTION=sync
تغییر کنه.به همین سادگی🤣🤣🤣🤣🤣
اضافه:
من اینم نصب کردم
pnpm i laravel-echo
و کدم رو به
Echo.channel('order-channel')
.listen('nowOrders', e => {
console.log(e)
})
تغییر دادم.اما تفاوتی نکرد
راه حل رو خودم پیدا کردم:
در فایل .env
QUEUE_CONNECTION=database
باید به :
QUEUE_CONNECTION=sync
تغییر کنه.به همین سادگی🤣🤣🤣🤣🤣
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟