app与后台通信协议

 通用的语言有很多种,例如英语和中文,在网络的通讯中,通用的协议有很多,其中http是被最广泛使用的。如果是私有的协议,那就只能自己设计了。

  用http是最方便的,如果是私有协议,包含协议的封装和拆解,工作量大,前端程序员和后端程序员都要增加很多额外的工作量。而且私有协议对程序员的要求高,不适合从web网站转过来的开发者。除非是手游,不然用http就好了。

(2)app和服务器通讯使用长连接还是短连接?

  假设现在通过手机拨打另外一个人的手机,手机通话费用非常便宜(甚至可以忽略),但是有两个注意的地方:

  1.一台手机同一时间只能接听一个电话。

  2.一台手机接听电话前非常麻烦,要拨号啦,要等接听,这需要一段时间。

  app和服务器通讯使用长连接还是短连接这个问题,可以等同于上面电话模型,是一直保持着通话,还是有需要时才拨号通话这个问题?

2)app和服务器通讯使用长连接还是短连接?

  假设现在通过手机拨打另外一个人的手机,手机通话费用非常便宜(甚至可以忽略),但是有两个注意的地方:

  1.一台手机同一时间只能接听一个电话。

  2.一台手机接听电话前非常麻烦,要拨号啦,要等接听,这需要一段时间。

  app和服务器通讯使用长连接还是短连接这个问题,可以等同于上面电话模型,是一直保持着通话,还是有需要时才拨号通话这个问题?

  当app和服务器通讯使用长连接,就相当于一直保持着通话,服务器能保持的通讯数量有限,如果通讯满了,那其他app就不能和服务端通讯了。这种通讯方式,多数是使用socket或websocket连接长时间连接,对程序员的要求比较高,开发比较困难,除了手游和聊天推送服务外,不建议使用。

  当app和服务器通讯使用短连接,就相当于需要时才拨号通话。这种通讯方式,配合http协议,是现在主流的通讯方式,开发效率高,有大量的第三方资源,使用非常广泛,推荐使用这种方式。

当app调用api的时候,只需要明确下面3点:

  1.这个api是干啥的(柜员机例子中,是取款功能,还是查询余额,还是转账)

  2.知道要输入什么(柜员机例子中,取款要输入金钱)

  3.知道结果是什么(柜员机例子中,取款是成功还是失败)

  至于api内部是怎么处理的,app根本无需理会。

  api,一般是以http的形式调用的,通过http传入参数,返回结果。其中,结果一般是以json格式返回的,因为json格式被众多计算机语言支持,而且省流量。

时间: 2024-10-12 16:21:29

app与后台通信协议的相关文章

APP进入后台时自动截屏的应对方法

点击HOME键使应用进入后台时,iOS会自动对当前屏幕进行截屏处理,并保存成图片文件. 在Mac中可以看到,这些截屏文件会被保存在下述路径中: <Home>/Library/Caches/Snapshots/(Bundle identifier)/ 且文件名以"UIApplicationAutomaticSnapshotDefault-"开头. 这些自动生成的截屏文件,对启用了密码保护功能的应用而言,在安全性方面会是个比较严重的问题. 经过各种试验,找到了3中解决方法. 方

iOS App进入后台获取更多的运行时间

转载自:looyao's blog 当App进入后台时(按下Home键), App会被系统暂停, 所有的程序逻辑都会停止, App还是驻留内存中, 除非被用户强制退出, 或者被系统kill掉(为了保证正在前台运行的App有足够的内存, 系统会选择性的kill到后台的其他App), 当然这个和本文讨论的主题不太相关, 本文要讲的是如何让进入后台的App争取更多的运行时间而不是被马上暂停掉. 当程序进入后台, 我们有时需要做一些网络通信, 比如向服务器发送一些状态数据, 可能这些操作不会太耗时, 但

ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方式

原来定位服务是10分钟收不到定位信息就挂起定位,如今变为最短3分钟,预计都是为了省电吧. 仅仅要你开启应用的后台定位,而且10分钟有一次定位,那么苹果就不会关闭你的线程.如今变成3分钟.若你的应用开启了后台定位,当最短3分钟(经过測试也可能大于3分钟小于等于10分钟)不定位,ios系统也会把你的应用挂起. 而高德地图ios sdk的ios9以上版本号后台定位开启方法变更,而高德导航库没有同步变更,导致使用老的地图库和高德导航地图库的用户定位服务不能实际开启,切换到后台3分钟(经过測试也可能大于3

怎样防止App在后台运行,点击应用桌面图标重新启动?

怎样防止App在后台运行,点击App桌面的图标重新启动? 在项目中,遇到一个问题百思不得其解,那就是:我在app使用过程中,点击了home键,然后去看看微信之类的其他应用,这个时候再点击app桌面的图标,这个时候app是重新启动的,而不是从上次停止的界面开始的. 对于上面的情况,我觉得既然我的app已经在后台还运行着,为什么就不能继续重上一个界面继续运行,非得从新运行呢.然后我就去查资料解决了这个问题.首先讲讲这个现象的本质. 原因:当点击app桌面图标时,app默认是任务你要新建一个应用,而不

app的后台接口通讯方案

本文是参考网上资料,和结合自身的一些开发经验所写,不喜勿喷! 在app的后台设计中,一个很重要的因素是考虑通讯的安全性. 因此,我们需要考虑的要点有:1. 在app和后台,都不能保存任何用户密码的明文2. 在app和后台通讯的过程中,怎么保证用户信息的安全性 3,app的反编译处理 在app中,根据安全考虑,用户的操作分为两类: 1. 用户登录注册操作 2. 用户的其他操作   在第一点,用户登录注册操作中,是会出现用户密码,所以在这个过程中,必须要使用https通讯,保证通讯的安全.    在

Android 监听APP进入后台或切换到前台方案对比

在我们开发的过程中,经常会遇到需要我们判断app进入后台,或者切换到前台的情况.比如我们想判断app切换到前台时,显示一个解锁界面,要求用户输入解锁密码才能继续进行操作:我们想判断app切换到后台,记录一下log:或者当用户切换回前台时,我们想刷新一下页面的数据等等...... android里面监听app前后台的方案很多(这还是得归根于安卓提供了丰富的api和强大的架构支撑,呵呵~),比如可以通过ActivityManager提供的getRunningAppProcesses()获取系统当前运

iOS蓝牙APP常驻后台

iOS蓝牙类APP常驻后台的实现方法,经过在苹果开发者论坛询问,以及查看苹果开发者文档,最后得出正确的方法为: 1.设置plist,蓝牙权限 2.到target-capabilities-background modes中打开use Bluetooth LE accessories选项 3.创建central manager时设置restore identifier _bluetoothmanager = [[CBCentralManager alloc] initWithDelegate:se

iOS保持App真后台运行

https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就是切换一下系统界面都会觉得卡;苹果手机不论开多少app在后台都感觉很流畅. 这是因为安卓默认处理app为真后台,可以一直在后台处理操作; 而iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后

Android开发检测App从后台进入前台的解决方法

public class ActLifecycle implements ActivityLifecycleCallbacks { private int mPreActivityStartedCount = 0; private int mActivityStartedCount = 0; private int mActivityOrientation = Configuration.ORIENTATION_UNDEFINED; @Override public void onActivit