Я использую 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;
});
У меня нет никакого реального опыта с 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
,
Других решений пока нет …