android平台的app、手机客户端和后台服务器怎么进行数据交互?

android平台的app、手机客户端和后台服务器怎么进行数据交互?,第1张

首先不要管安卓端还是苹果端,现在一般都是响应式的app,你放到安卓或者苹果或者pc或者平板都是没有问题的。一般采用的是http接口通讯,或者socket连接。具体你要去查资料找Demo了。而且现在主流是采用html5开发或者混合开发了。所以最好是服务器提供appAPI接口,通过http访问服务器,获取数据,数据一般是json,或者xml,拿到后解析数据就可以了,然后再用UI框架或者其他框架或者自定义的UI封装下格式很漂亮了,至于cookie和session等,看你的习惯,网络验证和签名那些也自己看习惯,如果涉及到大数据,还需要引入第三方框架的,直接引入就可以了,不过推荐自己写,防止侵权。都是很通用的。

数据交换(Data Switching)是指在多个数据终端设备(DTE)之间,为任意两个终端设备建立数据通信临时互连通路的过程。数据交换可以分为:电路交换、报文交换、分组交换和混合交换。电路交换原理与电话交换原理基本相同。电路交换的缺点是电路的利用率低,双方在通信过程中的空闲时间,电路不能得到充分利用。

报文交换的原理是当发送方的信息到达报文交换用的计算机时,先存放在外存储器中,待中央处理机分析报头,确定转发路由,并选到与此路由相应的输出电路上进行排队,等待输出。一旦电路空闲,立即将报文从外存储器[1]  取出后发出,这就提高了这条电路的利用率。报文交换虽然提高了电路的利用率,但报文经存储转发后会产生较大的时延。分组交换也是一种存储转发交换方式,但与报文交换不同,它是把报文划分为一定长度的分组,以分组为单位进行存储转发。这就不但具备了报文交换方式提高电路利用率的优点,同时克服了时延大的缺点。

与电文交换相比,分组交换的优点是:

①在电文交换中,总的传输时延是每个节点上接收与转发整个电文时延的总和,而在分组交换中,某个分组发送给一个结点后,就可以接着发送下一个分组,这样总的时延就减小;

②每个节点所需要的缓存器容量减小,这有利于提高节点存储资源的利用率;

③传输有差错时,只要重发一个或若干个分组,不必重发整个电文,这样可以提高传输效率。分组交换的缺点是每个分组要附加一些控制信息,这会使传输效率降低,尤以长电文为甚。一般分组交换提供虚电路和数据报两种基本业务。[2]

混合交换

在一个计算机网络中同时采用电路交换和分组交换方式,称为混合交换。混合的方法是将传送信道分为不同的带宽,将一部分带宽分配给电路交换使用,而将另一部分带宽分配给分组交换使用。这里所谓的带宽就是指在一条传输信道上允许传输信息的频带宽度,即能从信道上通过信号的最高频率。

最简单的模式就是,

客户端接收键盘,鼠标等的消息,然后发送个服务器。

服务器收到这些消息后,发送给其他(指定或者所有的)客户端

就像你在WEB聊天室聊天一样。首先键盘输入了一大堆文字。然后按下“递交”按钮,于是客户端收集你填写的那些文字内容,然后发送给服务器。(也许里面有些色情暴力的字眼)

服务器在接收的这些消息后,发送给其他用户。(服务器可能和谐掉那些色情暴力的字眼,变成了XXOO)

网络游戏的客户端和服务器也是一样的道理

客户端纪录所有的消息指令,一般来说,如果该消息指令可能影响到其他人的,或者需要被其他人看到,这个消息就会需要被发送到服务器。

服务器处理这些消息进行处理,发送给其他相关的客户端。

直白点来说,服务器端与客户端分别处理哪些事情?你是老板,你说了算。

前言:

本文总结了iOS客户端与服务器进行交互时,采用 RESTful API + Json 的交互方式,针对不 同的数据形式以及不同的解析方法,如有不足之处,欢迎指正。

先了解一下相关的基本概念。

HTTP通信:

即使用HTTP协议进行通信,工作原理是客户端向服务器端发送一条HTTP请求,服务器收到之后先 解析客户端的请求,之后会返回数据给客户端,然后客户端再对这些数据进行解析和处理。HTTP 连接采取的是“请求—响应”方式,即在请求时建立连接通道,当客户端像服务器端发送请求时,服 务器端才能向客户端发送数据。

Socket通信:Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。通过建立 socket连接,可为通信双方的数据传输传提供通道。Socket的主要特点有数据丢失率低,使用简 单且易于移植。Socket类似于peer to peer的连接,一方可随时向另一方喊话。

小结:HTTP和Socket都是基于TCP协议的。使用两种通信方式的情况是: 使用HTTP的情况:双方不需要时刻保持连接在线,比如客户端资源的获取、文件上传等。

使用UDP的情况:大部分即时通讯应用(QQ、微信)、聊天室、苹果APNs等。

主要有四种:

数据流

1.从web服务器响应到手机终端的数据 一般打包在一个字节数组中,这个字节数据中包含了不同的 数据类型,客端端采取Java数据流和过虑流的方式从字节数组中取出各种类型的数据。

这种交互方式我在学习iOS之初用过,实际项目中并没有发现哪家公司在用。这种方式了扩展 了iOS平台在访问Web服务器进行交互时的解析数据能力,仅供研究学习。

2.XML Webservice的标准数据格式。 Protocol Buffers

3.Protocol Buffers 是一种轻便高效的结构化数据存储格式,支持跨平台。它很适合做数据存储或 RPC 数据交换格式。比 JSON 最大的优点就是传输的时候数据体积可以压缩很小,传输效率比较 高。本人在这个在项目中没有用到过。

4.JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。毫无疑问,大家最常用。

本文重点会介绍关于Json数据格式 的常用格式。

Json数据格式 的采用,根据业务情况,一般是团队中的共识。技术的迭代更新,到后期基本都会考虑多 个平台的通用性、可移植性和可读性。比如 我们开发团队,有移动端开发(Android、iOS)、前端开发 (H5开发)和后台开发(golang开发)。

关于服务器的开发规范,我们先来了解一下。

服务器开发规范 我们采用的是 RESTful , RESTful 是目前最流流行的 API设计规范,用于web数据接

口的设计。

• 面面向资源(URI),具有解释性

• 行为(GET / POST / PUT / PATCH / DELETE)与资源(URI)分离,更更加轻量量

• 数据描述简单,使用用JSON、XML、Protocol Buffers即可全覆盖,主要使用用JSON

它的核心原则是定义用少量方法就能操作的命名资源。资源和方法可视为API的 和动词。

• GET :读取(Read)

• POST :新建(Create)

• PUT :更新(Update),通常是全部更更新

• PATCH :更新(Update),通常是部分更更新

• DELETE :删除(Delete)

项目搭建之始,客户端和服务器一般用 Get 和Post的方式来交互,随着业务的演进和技术的规范迭代, 到后期我们都得按规范来。于是 我们采用了上述几种方式来设计服务器接口,相应地,移动端的请求方 式也得与之对应。

至此,不在赘述 RESTful API 的设计规范,可自行百度了解更多。

接口的数据一般都采用JSON格式进行传输,不过,需要注意的是,JSON的值只有六种数据类型:

•Number:整数或浮点数

•String:字符串

•Boolean:true 或 false

•Array:数组包含在方括号 [] 中

•Object:对象包含在大括号 {} 中

•Null:空类型

传输的数据类型不能超过这六种数据类型,不能用Date数据类型,不同的解析库解析方式不同,可能会 导致异常,如果遇到日期的数据,最好的方式就是使用毫秒数表示日期。

本文总结了iOS与服务器的交互方式和数据类型,并总结了在实际项目的简单运用。数据格式的运

用场景远不止上面提到的几种场景,后期会持续完善,如有不足之处,欢迎指出。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/731892.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-11
下一篇2023-08-11

发表评论

登录后才能评论

评论列表(0条)

    保存