有關Pusher.js的快速問題。應用程序廣泛訂閱頻道
我已經開始今天在通知功能的工作,並希望與Pusher.js要做到這一點,因爲我用了我的聊天。
我正在Laravel工作。我想實現的是應用程序範圍內的頻道訂閱。當用戶註冊一個頻道時,他正在爲他製作「notifications_channel」,這是我在數據庫中存儲的。我知道如何註冊一個用戶到一個頻道,但是一旦他離開那個頁面,房間就騰空了。這不是我正在尋找的,因爲無論他在哪個平臺上,我都想發送用戶通知。
我真的無法找到文檔中像這樣的東西,所以我想也許你們的人知道如何做到這一點。
下面是我做的一些片段:
當用戶registrates我火了這一點:
$generateChannel = User::generateNotificationsChannel($request['email']);
這相當於這在我的模型:
public static function generateNotificationsChannel($email){
$userID = User::getIdByMail($email);
return self::where('email', $email)->update(['notifications_channel' => $userID."-".str_random(35)]);
}
這是非常基本的,但現在這就是我所需要的。
所以現在,當我的HomeController的索引功能在用戶登錄時被解僱,這從數據庫中收集了NotificationsChannel,並將其發送給視圖。
public function index()
{
$notificationsChannel = User::getUserNotificationsChannel(\Auth::user()->id);
return view('home', compact('notificationsChannel', $notificationsChannel));
}
一旦到了那兒,我只是訂閱用戶信道,並結合他聯繫到通道的任何事件:
var notifications = pusher.subscribe('{{$notificationsChannel}}');
channel.bind('new-notification', notifyUser);
function notifyUser(data){
console.log(data);
}
因此,大家可以看到,現在這是很基本的。但是我的調試控制檯告訴我,只要用戶離開/回家,通道就會空出來。
所以,問題是,我該如何讓他訂閱的頻道,無論在哪裏,他是在平臺上?
任何和所有幫助將深表感激!
在此先感謝。
嗨艾伯特,而不是編輯您的問題發佈您的版本作爲一個新的答覆,並將其標記爲正確的 – gmsantos