问题
使用场景:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您的理解是正确的。在您描述的场景中,用户退出登录后与账号、标签或别名解绑,服务端在这期间通过这些标识进行的推送,由于没有绑定的设备,自然无法送达给用户。即使启用了离线推送功能,其作用是在设备离线时暂存消息,待设备上线后再推送给该设备,但前提是推送时目标设备与账号、标签或别名之间存在有效绑定关系。一旦解绑,这种关联就断开了,离线推送也无法基于已解绑的标识触达用户。
根据您提出的解决方案,确实是一个合理的做法: 1. 服务端记录消息:当用户处于未登录(即解绑状态)时,服务端可以暂时存储需要推送的消息,而不是立即尝试推送。 2. 重新登录后推送:一旦用户重新登录并重新建立了与账号、标签或别名的绑定关系,服务端再检查是否有为该用户保存的未推送消息,并立即向现在已绑定的设备发送这些消息。
为了实现这一方案,您可能需要在服务器端设计一个消息队列或数据库表来暂存这些待推送信息,并开发相应的逻辑来检查用户登录状态和处理这些待推送消息。同时,确保您的应用在用户登录时能够及时更新与阿里云移动推送服务的绑定关系,以便接收新的消息推送。