项目中使用微信小程序作为前端,服务器端使用 Spring Boot,缓存使用 Redis。
用户上线后,将用户账号(即手机号)存入 Redis 中(Vaue 为 null),以防止用户重复登录。用户主动点击退出登录时,调用后端相应方法清除缓存数据。但直接关闭程序,则缓存中数据无法被清除,下次登录时若缓存数据未超时仍然存在,则必然重复登录。
关闭程序时,客户端应如何通知服务器端自己下线,以便清理缓存?类似的,如果使用网页前端,关闭网页后如何通知服务器端自己下线?
项目中使用微信小程序作为前端,服务器端使用 Spring Boot,缓存使用 Redis。
用户上线后,将用户账号(即手机号)存入 Redis 中(Vaue 为 null),以防止用户重复登录。用户主动点击退出登录时,调用后端相应方法清除缓存数据。但直接关闭程序,则缓存中数据无法被清除,下次登录时若缓存数据未超时仍然存在,则必然重复登录。
关闭程序时,客户端应如何通知服务器端自己下线,以便清理缓存?类似的,如果使用网页前端,关闭网页后如何通知服务器端自己下线?
心跳机制,每隔一段时间向服务端发送一个消息,以表示自己仍在线,超过这个时间表示已经下线,但是会有个问题,就是用户把手机放那里很久没动,就会自动下线