首页 > 解决方案 > 仅使用 Nchan 发布给登录用户

问题描述

我正在使用 nchan ( https://github.com/slact/nchan ) 设置具有实时事件的应用程序。应用程序本身是基于 Laravel 框架构建的。但是,现在订阅特定子频道的每个人都会在信息被推送到相应的发布频道时收到新的事件。我想限制这一点,因此只有登录用户才能订阅事件。因此,如果我没有登录,则应该无法创建 websocket 并侦听来自例如http://www.example.com/chat/pubchat?id=some_id的事件。

有没有办法让这成为可能?据我所知,我不能使用 Nginx/Nchan 进行数据库查询以仅以这种方式登录用户。Laravel 本身不能限制订阅者,因为这是由 Nginx/Nchan 处理的(但另一方面,可以进行数据库查询)。

感谢您的任何提示!

编辑:似乎我可以使用 Drizzle 模块(https://github.com/openresty/drizzle-nginx-module)并使用会话 ID 作为标识符。因此,如果会话表中不存在该 ID,则连接将被阻止。

标签: laravelnginxnchan

解决方案


推荐阅读