Laravel 5.1会话和Socket.IO+Redis-向已登录(已知)用户和用户组发送通知


Laravel 5.1 Session and Socket.IO + Redis - Sending Notifications to Logged In (Known) Users and Group Of Users

我正在做一个项目,我想为特定的用户组(具有管理员角色)实现实时通知,经过一番研究,我明白我需要会话来知道哪些用户登录了(默认情况下他们是匿名的)。

此外,我还需要实现仅针对特定用户的通知。(只有一个用户,例如:John Doe)

所以,我的问题是:

  1. 如何通过Redis将会话/cookie转移到NodeJS端,然后发出通知?

  2. 我到底该怎么办?

  3. 有加密/解密吗?

有人有机会实现这样的东西吗?

互联网上几乎没有关于这方面的信息,大多数教程对我的用例来说都太基础了。

我使用Laravel 5.1广播功能发布一些通知,并使用Socket.io(1.3.7版)实时显示。我还使用Redis(第3版)、NodeJS(第5版)和Express(4.13版)。

感谢阅读!

我一直在(缓慢地)为一个使用Autobahn和WAMP的网络应用程序实现类似的东西,它是相关的协议和路由器。我目前有大约五种不同的服务(有些是用PHP编写的,有些是用NodeJS编写的)以及所有实时通信的客户端。

WAMP的好处在于它封装了远程过程调用(RPC)和发布/订阅(PubSub)模型以进行通信。

我的身份验证方案有点混乱:在Laravel网络应用程序的每个页面上,都有一个令牌值,该值对用户来说是唯一的,在登录Laravel应用程序时生成。当客户端连接到WAMP路由器时,Javascript使用此令牌值进行身份验证——如果它是无效(或过时)的令牌,则拒绝连接。

至于将通知限制在特定用户或组,一种简单的方法是将适当的JS代码封装在一个函数中,该函数只有在用户具有适当权限的情况下才被调用(或仅输出到刀片模板中的客户端)。

最后,我的应用程序是严格在我们的防火墙内使用的,所以我还没有研究过使用加密/解密。