[英]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.