繁体   English   中英

Vue/Laravel Websockets 离开

[英]Vue/Laravel Websockets Leave

我试图检测客户端何时与 websocket 断开连接并用它触发一些功能,但到目前为止我没有成功。 我正在使用 BeyondCode websockets,我调用类的方式如下:

Broadcast::channel('order.{id}', OrderChannel::class);

所以这个 OrderChannel 类有功能

public function join(User $user, Orders $id)
    {
        return ['id' => $user->id, 'name' => $user->name, 'image' => $user->profile_photo];
    }

它按预期工作,但我想在用户与该套接字断开连接时更新数据库中的某些内容,我尝试了以下操作:

public function leave(User $user, Orders $id)
    {
        $order = Orders::where('id', $id)->withTrashed()->update(['user_id' => null]);

        return $order;
    }

但它不起作用,有什么建议如何触发吗?

我认为 Presence 频道应该可以解决您的问题。 您可以在以下位置找到相关文档: https : //laravel.com/docs/8.x/broadcasting#presence-channels

然后,您可以订阅leaving事件,并通过发送例如 HTTP 请求并执行当前leave函数中的代码来触发您的后端。

如果没有看到有关您如何订阅事件的更详细示例,很难说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM