一种iOS基于静态库的网络数据传输方法、装置及系统制造方法及图纸

技术编号:31980956 阅读:16 留言:0更新日期:2022-01-20 01:37
本申请提供一种iOS基于静态库的网络数据传输方法、装置及系统,静态库设有对应的单例类对象作为该静态库的代理,方法应用于单例类对象,包括:获取iOS客户端发送的调用请求并统一发送给静态库,每个调用请求用于表征iOS客户端以期通过静态库暴露的接口调用静态库内的方法;接收静态库回调的网络数据,其中,静态库基于调用请求通过socket向服务器请求以得到网络数据,网络数据包含iOS客户端欲调用的目标方法所对应的回调函数;基于网络数据从预设函数映射表中确定出回调函数对应的方法名,并基于方法名调用对应的目标方法到iOS客户端。此种方式不仅解决了网络数据传输的实效性,也能够实现客户端与服务器之间通信的双向性。性。性。

【技术实现步骤摘要】
一种iOS基于静态库的网络数据传输方法、装置及系统


[0001]本申请涉及数据传输领域,具体而言,涉及一种iOS基于静态库的网络数据传输方法、装置及系统。

技术介绍

[0002]进行iOS客户端开发,通常需要链接一些静态库,当使用到静态库时,Xcode导入framework进行编译完成后即可使用静态库。使用开发好的静态库,当有新业务或者问题修改时,库文件需要改动,对应的接口头文件也需要改动,则使用静态库的工程的编译会需要较多的时间。
[0003]当需要添加不同功能、需要增加业务需求时,只需要增加framework与应用层参数的变化即可,因此可在不更改静态库的情况下,应对业务需求灵活变化的应用场景。这时候需要在客户端层面做一个统一的管理器,应用层和底层之间的数据传递,可以通过参数的变化来解决相对应的问题。
[0004]针对iOS客户端的网络请求,传统的方式有很多,例如http协议、tcp协议、udp协议等传输方式。这些传统的传输方式,对于应用的开发,http协议的实效性和短链接具有一定的缺陷,而tcp协议和udp协议对于开发者来说较难上手,维护起来不方便。

技术实现思路

[0005]本申请实施例的目的在于提供一种iOS基于静态库的网络数据传输方法、装置及系统,以通过基于静态库的网络请求的传输方式,在保证传输的实效性的同时,实现客户端与服务器之间通信的双向性。
[0006]为了实现上述目的,本申请的实施例通过如下方式实现:
[0007]第一方面,本申请实施例提供一种iOS基于静态库的网络数据传输方法,静态库设有对应的单例类对象作为该静态库的代理,所述方法应用于所述单例类对象,包括:获取iOS客户端发送的调用请求并统一发送给所述静态库,每个调用请求用于表征所述iOS客户端以期通过所述静态库暴露的接口调用所述静态库内的方法;接收所述静态库回调的网络数据,其中,所述静态库基于所述调用请求通过socket向服务器请求以得到所述网络数据,所述网络数据包含所述iOS客户端欲调用的目标方法所对应的回调函数;基于所述网络数据从预设函数映射表中确定出回调函数对应的方法名,并基于所述方法名调用对应的目标方法到所述iOS客户端。
[0008]在本申请实施例中,利用单例类对象作为静态库的代理,处在客户端与服务器之间,能够统一调用静态库接口,向下(向静态库)传递请求,静态库可以去服务器修改或者拉取内容,向上收到静态库的回调,统一分发处理。因此,此种方式不仅解决了网络数据传输的实效性,而且能够实现客户端与服务器之间通信的双向性,可以说是集http协议与tcp协议的优点于一身的方式。且此方式轻量级无状态化,即服务器不保留与客户端交易时的任何状态,大大减轻了服务器记忆负担,从而保持较快的响应速度。相对于传统用socket本地
写tcp协议的方式,连接轻量级化。静态库链接网络服务器的数据传输具有加密状态行为,可提升安全性,防止网络黑客劫持行为,防止数据被篡改。并且,此种方式接口调用方便,双向传输,相较于http协议的单向传输可以实现及时通讯功能。另外,由于静态库回调给iOS客户端,处理回调内容尤为重要,特别是当有很多接口回调数据时,如果针对每个回调接口配置对应的回调处理代码,那么大量的代码对于前期开发和后期维护都具有极高的难度。而本方案针对静态库,利用framework将网络数据传输抛给应用层,iOS客户端创建代理(单例类对象)去接收静态库的回调,少量代码即可以管理大量的静态库的回调(可以通过几行代码实现),能够极大地降低前期开发和后期维护的难度。以及,本方案可以适应业务需求灵活变化的应用场景,因为当业务需求变化的时候不会影响接口名的变化(类似http传输协议的域名端口),可以通过找到对应的文件来更改参数(可以通过预设函数映射表实现),以更改具体业务实现,维护性和扩展性极强。
[0009]结合第一方面,在第一方面的第一种可能的实现方式中,创建所述单例类对象的方式为:创建单例类PPCPMsgManager,PPCPMsgManager即所述单例类对象;在PPCPMsgManager中设置代理,生成包含多个业务管理类的预设函数映射表,其中,每个所述业务管理类关联有至少一个方法名。
[0010]在该实现方式中,创建单例类对象PPCPMsgManager,当需要向静态库发送调用请求的时候,在任何地方都可以调用这个单例类对象,通过framework暴露出来的头文件,即可调用静态库请求方法。而在PPCPMsgManager中设置代理,生成包含多个业务管理类的预设函数映射表,可以便于后续在回调处理的过程中通过此预设函数映射表确定出对应的方法名以对相应方法进行调用,无需在处理回调的过程中使用头文件进行方法的调用,从而能够适应业务需求灵活多变的应用场景。
[0011]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在PPCPMsgManager中设置代理,生成包含多个业务管理类的预设函数映射表,包括:创建单例类PesRespondsManager作为PPCPMsgManager的代理;获取多个业务管理类回调函数列表;针对每个业务管理类回调函数列表,对该业务管理类回调函数列表进行循环处理,获取其中的函数SEL,以此得到业务管理类回调函数列表中的所有函数,再对每个函数进行utf

8字符串处理,并分割字符串成为数组,以分割出对应的方法名,而后将函数对应的方法名加参数注册到映射关系表中,并释放该函数;针对每个业务管理类回调函数列表的注册完成后,得到所述预设函数映射表。
[0012]在该实现方式中,通过获取多个业务管理类回调函数列表;针对每个业务管理类回调函数列表,对该业务管理类回调函数列表进行循环处理,获取其中的函数SEL,以此得到业务管理类回调函数列表中的所有函数,再对每个函数进行utf

8字符串处理,并分割字符串成为数组,以分割出对应的方法名,而后将函数对应的方法名加参数注册到映射关系表中,并释放该函数;针对每个业务管理类回调函数列表的注册完成后,得到预设函数映射表。通过此种方式可以实现函数的注册,得到预设函数映射表,以便于iOS基于静态库的网络数据传输方法的实现。
[0013]结合第一方面,在第一方面的第三种可能的实现方式中,所述预设函数映射表包含多个业务管理类,每个业务管理类关联有至少一个方法名,基于所述网络数据从预设函数映射表中确定出回调函数对应的方法名,包括:从所述预设函数映射表中确定出与所述
网络数据中回调函数对应的目标业务管理类;从所述目标业务管理类中确定出与所述回调函数匹配的方法名。
[0014]在该实现方式中,通过此种方式可以简单高效地确定出与回调函数匹配的方法名。
[0015]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,基于所述方法名调用对应的目标方法到所述iOS客户端,包括:基于所述方法名,通过objective

C的runtime特性确定出对应的目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种iOS基于静态库的网络数据传输方法,其特征在于,静态库设有对应的单例类对象作为该静态库的代理,所述方法应用于所述单例类对象,包括:获取iOS客户端发送的调用请求并统一发送给所述静态库,每个调用请求用于表征所述iOS客户端以期通过所述静态库暴露的接口调用所述静态库内的方法;接收所述静态库回调的网络数据,其中,所述静态库基于所述调用请求通过socket向服务器请求以得到所述网络数据,所述网络数据包含所述iOS客户端欲调用的目标方法所对应的回调函数;基于所述网络数据从预设函数映射表中确定出回调函数对应的方法名,并基于所述方法名调用对应的目标方法到所述iOS客户端。2.根据权利要求1所述的iOS基于静态库的网络数据传输方法,其特征在于,创建所述单例类对象的方式为:创建单例类PPCPMsgManager,PPCPMsgManager即所述单例类对象;在PPCPMsgManager中设置代理,生成包含多个业务管理类的预设函数映射表,其中,每个所述业务管理类关联有至少一个方法名。3.根据权利要求2所述的iOS基于静态库的网络数据传输方法,其特征在于,在PPCPMsgManager中设置代理,生成包含多个业务管理类的预设函数映射表,包括:创建单例类PesRespondsManager作为PPCPMsgManager的代理;获取多个业务管理类回调函数列表;针对每个业务管理类回调函数列表,对该业务管理类回调函数列表进行循环处理,获取其中的函数SEL,以此得到业务管理类回调函数列表中的所有函数,再对每个函数进行utf

8字符串处理,并分割字符串成为数组,以分割出对应的方法名,而后将函数对应的方法名加参数注册到映射关系表中,并释放该函数;针对每个业务管理类回调函数列表的注册完成后,得到所述预设函数映射表。4.根据权利要求1所述的iOS基于静态库的网络数据传输方法,其特征在于,所述预设函数映射表包含多个业务管理类,每个业务管理类关联有至少一个方法名,基于所述网络数据从预设函数映射表中确定出回调函数对应的方法名,包括:从所述预设函数映射表中确定出与所述网络数据中回调函数对应的目标业务管理类;从所述目标业务管理类中确定出与所述回调函数匹配的...

【专利技术属性】
技术研发人员:叶世昌唐进段凌云陈正超
申请(专利权)人:北京朗玛数联科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1