Laravel Broadcasting, я не могу получить событие в приложении Java Script

Я использую pusher в моем проекте. Отладка консоли показывает событие, когда я хочу подключиться к каналу в панели мониторинга, отображать состояние отключения, и я не получаю событие в приложении javascript.
JS код:

Echo.private(`order.${orderId}`)
.listen('NewChat', (e) => {
console.log(e.message);
}
);

Конфигурация трансляции:

PUSHER_APP_ID=625***
PUSHER_APP_KEY=bcd15f3d3c6*******
PUSHER_APP_SECRET=c8e7e09d21********
PUSHER_APP_CLUSTER=ap2

bootstrap.js:

import Echo from 'laravel-echo'

window.Pusher = require('pusher-js');

window.Echo = new Echo({
broadcaster: 'pusher',
key: 'bcd15f3d3***********',
cluster: 'ap2',
encrypted: false
});

событие:

public function broadcastOn()
{
return new PrivateChannel('order.'.$this->order_id);
}

канал:

Broadcast::channel('order.{orderId}', function () {
return true;
});

состояние отладки консоли

0

Решение

У меня нет никакого реального опыта с Laravel в сочетании с толкачом, но я вижу следующее:

Broadcast::channel('order.{orderId}',

{orderId} не будет переведено в значение переменной. Тебе нужно {$orderId}, Кроме того, делать это в одной строке в кавычках не получится, потому что она просто напечатает {$orderId}так что вам нужны двойные кавычки.

Попробуйте следующее:

Broadcast::channel("order.{$orderId}",

Может быть, это решит вашу проблему, а может и нет.

Если нет, вы уверены private(order.${orderId}) использует правильный идентификатор?
Проверить, если return new PrivateChannel('order.'.$this->order_id); использует право $this->order_id,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]