gpt4 book ai didi

php - 用户在 Laravel 中使用 Redis 加入广播 channel 后,在后端获取事件

转载 作者:行者123 更新时间:2023-12-03 06:38:42 26 4
gpt4 key购买 nike

我正在尝试了解如何在用户加入 channel 后捕获事件后端。我的意思是在对 Private 或 Presence channel 进行身份验证之后。
例如,在那之后:

Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
if ($user->canJoinRoom($roomId)) {
return ['id' => $user->id, 'name' => $user->name];
}
});
成功进行,我希望有可能捕捉到一个事件以知道用户加入了 channel (不仅仅是前端)。
关于如何处理它的任何提示?
引用: https://laravel.com/docs/6.x/broadcasting#joining-presence-channels

最佳答案

为了在后端处理事件,客户端需要在加入 channel 时进行通信。

axios.post('/channel/join')
.then(res => res.data)
.then(data => console.log);
在后端,您可以在(例如) routes/web.php 中拥有一条路线:
Route::post('/channel/join', 'ChannelController@joined');
然后,在 ChannelController.php你可以处理 Action 并做你想做的事:
public function joined(Request $request)
{
$user = auth()->user();

broadcast(new UserJoinedChannel($user))->toOthers();

return ['status' => 'Channel joined successfully!'];
}

关于php - 用户在 Laravel 中使用 Redis 加入广播 channel 后,在后端获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63585554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com