所谓的被挤下线功能,即一个账号在A客户端保持登陆状态,然后又在B客户端进行了登陆操作,那么A客户端就会被挤下线。
服务端需要返回 Token,每次在app登录时为 app 分配一个新的 token,如果在某次请求中 app 传递 token 不是最新的,则视为需要重新登录,在token失效的情况下,返回约定好的code
App如何知道该账户已经在其他设备上登陆了呢?有三种实现方式
api请求中后台返回特定的code。缺点是需要下次请求才知道被踢下线
使用推送。后台可以推送给APP,从而使APP得知已在其他地方登陆,可以及时响应。
使用第三方的监听器。比如集成了环信,环信自身有提供连接状态的接听,通过监听环信的用户状态,从而达到监听app自身用户系统的效果
我们的项目中集成了环信的即时聊天,所以就使用了环信的监听器监听用户状态,用来判断是否已在其他地方登陆,实现挤下线功能。
来源: http://mp.weixin.qq.com/s/rGOosMyAIVvbafj1vXpj8A