我在 project.in 控制台调试中使用推送器,当我想连接到仪表板中的通道时显示事件 显示断开连接状态,但我在 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
引导.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})
使用的是正确的 ID 吗? 检查return new PrivateChannel('order.'.$this->order_id);
是否使用了正确的$this->order_id
。