8***@qq.com
8***@qq.com
  • 发布:2024-11-10 09:17
  • 更新:2024-11-11 10:42
  • 阅读:402

请教:用户退出登录后,用户间im即时通讯消息该如何推送?

分类:uni-app
  • 你好,项目后端是传统服务器php+mysql,现在想引入unipush2.0,已开通unicloud。没引入uni-id-pages,还是自己原来的mysql用户id体系,看了下图的文档,有点迷茫。既然推送服务器底层只识别个推客户端id---push_clientid,且经测试,只要用户不卸载app,每次运行app在app.vue中通过uni.getPushClientId获得的push_clientid是不变的。
    项目是用户间im即时通讯,显然是需要用户在登录状态才能收到消息,可基于push_clientid的推送可不管用户是不是已退出登录,这种情况下该如何处理用户退出后的消息推送逻辑啊?*
2024-11-10 09:17 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

  • 8***@qq.com (作者)

    已经开通unicloud了,主要开发一键登录功能也要用。

    另外,现在不是用户离线,离线推送的离线只是应用后台运行或进程结束,但用户自身并没有退出登录。

    现在主要是不知道怎么处理用户主动退出登录后的推送逻辑。我能想到的路线是:每次用户登录时,向数据库写入用户id和push_clientid的映射关系,用户退出登录时,同时删除该用户id对应的push_clientid记录。这样用户有消息接收时,通过用户id查询对应的push_clientid,如果能查询到,则php服务器调用unicloud云函数的uniPush.sendMessage方法(传参push_clientid),如果查询不到则返回。但总感觉这种方法比较low,应该不是正常路线,没有文档中写的校验token的过程。

    2024-11-11 10:36

  • DCloud_uniCloud_JSON

    回复 8***@qq.com: 你查 users 表时直接过滤 token 已经过期/无效 的用户。如果无效直接就返回了,无需查cid 和 uid的映射表

    2024-11-25 16:03

8***@qq.com

8***@qq.com (作者)

回复

要回复问题请先登录注册