簡體   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