2015-12-30 119 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