Controllers / UserController.php
event(new UserEntered($myReserve));
Events / UserEntered.php
public function __construct($hisReserve)
{
$this->hisReserve = $hisReserve;
}
public function broadcastOn()
{
return new PrivateChannel('same-user.'.$this->hisReserve);
}
routes / channels.php
Broadcast::channel('same-user.{hisReserve}', function ($user, $hisReserve) {
return true;
});
js / bootstrap.js
user_id = 1; //as an example
window.Echo.private('same-user.' + user_id)
.listen('UserEntered', (update) => {
// it doesn't trigger here...
console.log(update);
alert('alert');
});
在控制台中,它显示Event: App\Events\UserEntered - Channel: private-same-user.1
,但是当我要收听它时,它不会通过该功能。实际上没有触发UserEntered。我的第一个问题是为什么它不通过该功能?而我的第二个问题是,是否可以使用对象作为参数,而不是那里的整数user_id?
更新
电击!我正在收听的same-user
不起作用,但是其他名为valid-user
的频道已经正常工作,但是当我将其更改为return false
时,它再次正常工作。 Laravel中缓存了什么吗?