如何解决用户在Laravel中加入Redis的广播频道后,即可在后端获得事件
我试图了解用户加入频道后如何捕获事件后端。我的意思是在对“私人”或“在线”频道进行身份验证之后。
例如,在那之后:
broadcast::channel('chat.{roomId}',function ($user,$roomId) {
if ($user->canJoinRoom($roomId)) {
return ['id' => $user->id,'name' => $user->name];
}
});
成功进行,我希望有机会捕捉到一个事件,以了解用户已加入频道(不仅是前端侧)。
关于如何处理的任何提示吗?
参考:https://laravel.com/docs/6.x/broadcasting#joining-presence-channels
解决方法
要在后端处理事件,客户端需要在加入频道时进行沟通。
axios.post('/channel/join')
.then(res => res.data)
.then(data => console.log);
在后端,您可以在routes/web.php
中有一条路线:
Route::post('/channel/join','ChannelController@joined');
然后,您可以在ChannelController.php
中处理该操作并执行所需的操作:
public function joined(Request $request)
{
$user = auth()->user();
broadcast(new UserJoinedChannel($user))->toOthers();
return ['status' => 'Channel joined successfully!'];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。