XuYang8026 / UniversalProject

基于MVC架构的iOS轻量级框架,封装了基类、基于猿题库YTKNetwork的网络服务、工具库,NavigationController转场动画/瀑布流/粒子动画/小demo,已适配iOS11 & iPhone X。欢迎Star🌟
2.02k stars 504 forks source link

请问是如何做到踢下线的 #5

Closed kriscog0114 closed 7 years ago

kriscog0114 commented 7 years ago

我有看到BaseRequestAPI中有设置一个isSuccess的属性,并且在 if ([code isEqualToString:@"1023"]) { //账号被顶掉 [[kAppDelegate getCurrentUIVC] AlertWithTitle:nil message:self.message andOthers:@[@"确定"] animated:YES action:nil]; KPostNotification(KNotificationOnKick, nil); }else if([code isEqualToString:@"1039"]){ //token过期 [[kAppDelegate getCurrentUIVC] AlertWithTitle:nil message:self.message andOthers:@[@"确定"] animated:YES action:nil]; KPostNotification(KNotificationOnKick, nil); } 代码里设置了退出登录的通知,但是这个方法是怎么调用的,如何实现的?

XuYang8026 commented 7 years ago

两种方案:

  1. 设置token,每次客户端登陆成功后,保存后台分配的token,之后的每次请求都带上token,若被踢或者失效,后台应返回特定错误码,前端提示并处理。优点:自主实现,不依赖于第三方。缺点:实时性差,若待在一个页面不动,不发送请求就不会被踢下线。详情见:BaseRequestAPI.m
  2. 利用IM长链接来实现实时踢下线。优点:实时性强。缺点:依赖于IM。