2015-12-30 22 views
1

我正在開發一個項目,我希望爲特定用戶組(包括角色)實施實時通知的管理員),並經過一些研究後,我明白我需要會話才能知道哪些用戶已登錄(默認情況下他們是匿名的)。Laravel 5.1會話和Socket.IO + Redis - 向已登錄(已知)用戶和用戶組發送通知

此外,我只需要實現通知給特定的用戶。 (只有一個用戶,例如:李四)

所以,我的問題是:

  1. 我如何通過在Redis的傳輸會話/ cookie來的側面的NodeJS,然後發出的通知?

  2. 我該怎麼做?

  3. 任何加密/解密?

任何人都有機會實現這樣的事情嗎?

在互聯網上幾乎沒有關於這方面的信息,大多數教程對於我的用例來說太基本了。

我正在使用Laravel 5.1 Broadcasting功能發佈一些通知並使用Socket.io(版本1.3.7)實時顯示它們。我還使用Redis(版本3),NodeJS(版本5)和Express(版本4.13)。

感謝您的閱讀!

+0

我在這裏問了同樣的問題:https://laracasts.com/discuss/channels/laravel/how-do-you-transfer-the-laravel-session-over-to-nodejs-and-use-it-一起與socketio – Ruffles

回答

0

我一直在使用AutobahnWAMP實現了一個web應用程序相似(慢)的東西,它的相關協議和路由器。我目前有大約五種不同的服務(一些使用PHP編寫,一些使用NodeJS)以及實時通信的客戶端。

WAMP的好處在於它封裝了遠程過程調用(RPC)和發佈/訂閱(PubSub)通信模型。

我的身份驗證方案有點混亂:在Laravel Web應用程序的每個頁面上,都有一個令牌值,它對用戶是唯一的,並且在登錄到Laravel應用程序時生成。當客戶端連接到WAMP路由器時,Javascript使用此標記值進行身份驗證 - 如果它是無效(或陳舊)標記,則連接將被拒絕。

至於限制通知給特定的用戶或組,一個簡單的方法就是將適當的JS代碼包裝在一個僅調用的函數中(或者只輸出到刀片模板中的客戶端)用戶具有適當的權限。

最後,我的應用程序嚴格用於我們的防火牆內部,所以我沒有調查過使用加密/解密。

+0

我正在以下示例:https://laracasts.com/discuss/channels/laravel/broadcasting-event-to-specific-client它來自這裏:http://stackoverflow.com/questions/ 22658222 /共享-laravel -4-會話與-的NodeJS快車 – Ruffles