Laravel Broadcasting, я не могу получить событие в приложении Java Script - PullRequest
0 голосов
/ 18 октября 2018

Я использую 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;
});

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

1 Ответ

0 голосов
/ 18 октября 2018

У меня нет реального опыта работы с 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.

...