【发布时间】:2020-07-03 05:40:02
【问题描述】:
我正在为移动应用程序构建 Web 服务。我需要知道哪些移动用户在线。我通过 Laravel echo-laravel echo server-socket io 和 redis 实现了这个。一切正常,客户端通过存在通道监听事件。
问题是,离开和加入事件在客户端,而当用户离开频道时,我需要将其从存储在 Redis 中的列表中删除,实际上我需要知道加入或离开哪个发生在服务器端而不是客户端,以便能够更新 Redis 中的在线用户。
我该怎么做?
我的解决方案
解决方案 1
如果服务器端有任何here方法的实现返回在线用户,它可能会起作用,实际上我可以将我的列表与here进行比较以获取最新更新。
解决方案 2
当某个用户发生事件时,如果该用户已经存在于我的 Redis 列表中,则显然这是一个离开事件,因为用户可以在任何时候恰好在线一次,如果该用户不存在于列表,所以它必须是一个连接,因为如果它已经在列表中,没有人可以加入。
提前致谢。
【问题讨论】:
-
很高兴知道您是否使用像Vue / Angular这样的前端框架,您只是在编写原始JS。
标签: laravel sockets laravel-echo