Sockets Socket.io:用户是否可以更改监听频道?

Sockets Socket.io:用户是否可以更改监听频道?,sockets,redis,socket.io,broadcast,laravel-events,Sockets,Redis,Socket.io,Broadcast,Laravel Events,所以我开始使用Redis和Socket.io向客户端广播事件。我使用Laravel作为后端,并将利用其事件功能 根据用户的访问级别,我只希望他们收听某些频道。我想我可以动态设置他们将收听的频道,但我担心他们是否可以使用调试工具或排序来更改他们正在收听的频道 例如,该页面可能会加载“channel-100”上的侦听,但他们是否可以更改代码,使其可以侦听任何其他频道,如“channel-110”?我不确定我是否可以具体帮助您处理Socket.io,但我可以告诉您,我们在实时系统中是如何做到这一点的,

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

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


例如,该页面可能会加载“channel-100”上的侦听,但他们是否可以更改代码,使其可以侦听任何其他频道,如“channel-110”?

我不确定我是否可以具体帮助您处理Socket.io,但我可以告诉您,我们在实时系统中是如何做到这一点的,这可能适用于您的问题

客户端可以请求连接到频道,因此这与您的建议相反,即客户端决定他们收听的内容,服务器不决定。看

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

我意识到这不是一个直接的答案,但我希望它能帮助你从架构上思考它


Matt,联合创始人,

我不确定我是否能具体帮助Socket.io,但我可以告诉您,我们是如何在实时系统中实现这一点的,这可能适用于您的问题

客户端可以请求连接到频道,因此这与您的建议相反,即客户端决定他们收听的内容,服务器不决定。看

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

我意识到这不是一个直接的答案,但我希望它能帮助你从架构上思考它


联合创始人Matt,

向我们展示相关代码,我们可以帮助您。向我们展示相关代码,我们可以帮助您。