【发布时间】:2020-04-08 08:30:43
【问题描述】:
我有一个问题,事件被正确触发,但数据没有从Broadcast::channel 方法内的授权回调函数返回。
事件如下所示:
public function __construct($userId, $message, $username, $profileImg, $fixtureId)
{
$this->message = $message;
$this->username = $username;
$this->profileImg = $profileImg;
$this->userId = $userId;
$this->fixtureId = $fixtureId;
}
频道(状态)是这样创建和广播的:
public function broadcastOn()
{
return new PresenceChannel('fixture-channel.' . $this->fixtureId);
}
然后在BroadcastServiceProvider 类中,我称之为:
public function boot()
{
Broadcast::routes(['middleware' => ['auth']]);
require base_path('routes/channels.php');
}
问题函数所在的channels.php 文件如下所示:
Broadcast::channel('fixture-channel.{fixtureId}', function ($user, $fixtureId, $message, $username, $profileImg, $userId) {
DB::table('test')->insert(array('id' => '4'));
return [
'message' => $message,
'username' => $username,
'profileImg' => $profileImg,
'userId' => $userId,
'fixtureId' => $fixtureId
];
});
如您所见,我试图在回调函数中插入一些数据,但这从未发生过。在回调函数之外,数据插入成功。我还尝试了一个回调函数,其中只定义了 user 和 fixtureId - 没有成功。
提前谢谢你。
【问题讨论】:
标签: javascript php laravel laravel-echo