gpt4 book ai didi

sockets - Socket.io:用户是否可以更改收听 channel ?

转载 作者:可可西里 更新时间:2023-11-01 11:13:14 25 4
gpt4 key购买 nike

所以我开始使用 Redis 和 Socket.io 向客户端广播事件。我在后端使用 Laravel,并将利用它们的事件功能。

根据用户的访问级别,我只希望他们收听某些 channel 。我想我可以动态设置他们将收听的 channel ,但我担心他们是否可以使用调试工具或排序来更改他们正在收听的 channel 。

例如,也许页面会在“channel-100”上加载监听,但是他们可以更改代码以使其可以监听任何其他 channel ,例如“channel-110”吗?

最佳答案

我不确定我是否可以专门针对 Socket.io 提供帮助,但我可以告诉您我们是如何在我们的实时系统中解决这个问题的,这可能适用于您的问题。

客户端可以请求附加到 channel ,因此这与您的建议相反,即客户端决定他们收听什么,服务器不决定。参见 how channels attach.

现在,为了解决您对哪些客户端可以访问哪些 channel 的担忧,您的 Laravel 应用程序应该发布一个 token 来指定它拥有的权限。由于你的 Laravel 应用程序负责身份管理并知道用户是谁,因此它始终处于最佳位置,可以随时获取最新信息。所以你的客户端应该从你的 Laravel 应用程序请求一个 token ,它被传递到你的 Socket.io 服务器,然后应用规则来允许/禁止请求加入这些 channel 。这样您的 Socket.io 服务器就不需要从您的系统中嵌入任何业务逻辑,并且在您的应用程序中发布 token 很容易。

参见 how we made token authentication can work with your app .

我知道这不是一个直接的答案,但我希望它能帮助您从架构上思考它。

Matt,联合创始人,Ably: simply better realtime

关于sockets - Socket.io:用户是否可以更改收听 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844381/

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