gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:58:27 27 4
gpt4 key购买 nike

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

另外,我只需要向特定用户发送通知。 (只有一个用户,例如:John Doe)

所以,我的问题是:

  1. 如何通过 Redis 将 session /cookie 传输到 NodeJS 端,然后发出通知?

  2. 我到底应该怎么做?

  3. 任何加密/解密?

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

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

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

感谢阅读!

最佳答案

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

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

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

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

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

关于php - Laravel 5.1 Session 和 Socket.IO + Redis - 向登录(已知)用户和用户组发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34525593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com