【问题标题】:Socket.io: Is it possible for a user to alter the listening channel?Socket.io:用户是否可以更改监听通道?
【发布时间】:2016-10-17 02:19:11
【问题描述】:

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

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

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

【问题讨论】:

  • 向我们展示相关代码,以便我们为您提供帮助。

标签: sockets redis socket.io broadcast laravel-events


【解决方案1】:

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

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

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

how we made token authentication can work with your app

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

马特,联合创始人,Ably: simply better realtime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 2017-09-23
    • 2018-09-22
    • 1970-01-01
    相关资源
    最近更新 更多