一种安卓客户端通信装置及与服务器进行连接通信的方法制造方法及图纸

技术编号:15395259 阅读:101 留言:0更新日期:2017-05-19 06:48
本发明专利技术涉及一种安卓客户端通信装置及与服务器进行连接通信的方法。连接通信方法包括客户端后台与服务器之间建立持久连接socket通道,该socket通道为客户端与服务器间连接通信的唯一通道;客户端后台通过所述socket通道接收服务器推送的消息;当客户端前台在线时,客户端后台将推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息显示在应用程序内;客户端前台离线时,客户端后台将推送消息通过系统的通知机制显示。本发明专利技术中,后端服务器始终都是和客户端后台进行通信,这使得后端服务程序不需要针对在线和离线的不同情况分别做处理,开发复杂程度大大降低。

Android client communication device and method for connecting and communicating with server

The invention relates to a Android client communication device and a method for connecting and communicating with a server. The connection between the client and the communication method includes the backstage server to establish a persistent connection socket channel, socket channel is the only channel connecting the communication between client and server; client background through the socket channel receiving server push message; when the client in the front line, the client background will push messages to the UNIX system of inter process communication mode pass to the client, the client will send a message to push the front display within the application; client is offline, client background will push message notification mechanism through the display system. In the invention, the back-end server always communicates with the client background, so that the back-end service program does not need to deal with the different situations online and offline, and the development complexity is greatly reduced.

【技术实现步骤摘要】
一种安卓客户端通信装置及与服务器进行连接通信的方法
本专利技术涉及网络通信领域,特别涉及一种安卓客户端通信装置及与服务器进行连接通信的方法。
技术介绍
安卓(Android)是一个开源的智能手机操作系统,由于其免费性和开放性,很快成为市场占有率最大的手机操作系统,为移动互联网的发展和普及提供了强大的基础设施。基于安卓系统开发出的各类手机应用(Applications或简称APP),为我们的生活提供了极大的方便。通常来说,手机应用都是C/S(客户端/服务器)架构,客户端安装在用户手机上,服务端在引用提供商的服务器上。应用在启动后需要连接互联网,与服务器取得连接,去服务器获取最新内容。移动互联网时代的消息传递更加注重实时性,等待用户打开应用才能获取消息的方式已经不能满足很多的业务需要。推送技术是一种从服务端向客户端推送消息的技术,这种技术由于是由服务端主动向客户端发送消息,用户可以在第一时间接受到服务端最新的消息,可以满足消息实时性的需求。几种常见的推送技术如下:1)轮询(Pull)方式:客户端需要创建一个进程常驻操作系统后台,定时向服务器发送询问消息,一旦服务器有更新则立即同步消息。消息的实时性受轮询周期的影响,周期越长实时性越差。严格来说这并不是一种真正的“推送”技术。2)SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受,极少有产品采用这种方式。3)持久连接(Push)方式:客户端创建一个进程常驻操作系统后台,该进程和服务器之间建立持久连接,这样就服务端可以在有更新的时候立刻将消息通过这个持久连接传递给客户端,是真正意义上的推送技术。持久连接也称长连接,一般是客户端和服务器之间通过TCP或HTTP协议建立的socket网络连接,由于连接建立后,双方都不主动断开连接,并定期交换发送数据极少的心跳(heartbeat)包来连接检测连接是否存活,以维持一个长久的连接,因此称为持久连接或长连接。连接的两端都可以在任意时刻通过这条信道向对方传递消息,这就是服务器端向客户端推送消息的理论基础。基于安卓操作系统的应用程序通常都分前台和后台两部分。前台即用户所操作的应用程序,后台进程用户看不到,作为service级别的进程常驻在操作系统内存当中。用户在启动应用程序,即开启前台进程,这时会向后端的服务器请求数据,将数据展示在应用程序内部,供用户使用。用户退出应用程序时,前台进程和后端服务器所有的网络连接都将断开,但是后台进程还会继续存在,用于后端服务器向用户推送少量的消息。现有技术下的服务器和安卓客户端之间的网络通信方法、装置,其虽然可以在一般情况下实现由服务端向手机客户端的信息推送,但是会存在以下问题:一、后台进程保活的问题:手机客户端用于通信的后台进程会因系统回收、用户触发等一些原因死掉,进程死掉就会导致与后台服务器的长连接断开,后端服务器的实时消息就不能推送到用户的手机上。二、在线与离线通信方式切换的问题:架构不合理导致在线和离线推送需要分开处理。用户启动应用程序时会向后端服务器请求数据,而此时后台的进程也可以获得服务端的数据,为了不出现混乱的情况,客户端或后端服务器都需要做一些切换处理,即对应用程序的在线与离线的情况做区分,分别进行处理,导致架构比较复杂,也容易出问题。
技术实现思路
本专利技术旨在提供一种安卓客户端通信装置及与服务器进行连接通信的方法,以解决上述问题。本专利技术是通过如下技术方案实现的:一种安卓客户端与服务器进行连接通信的方法,包括:客户端后台与服务器之间建立持久连接socket通道;客户端后台通过该socket通道接收服务器推送的消息;客户端后台处理推送消息并通过所述socket通道返回应答消息;其特殊之处在于:客户端后台与服务器之间建立的socket通道为客户端与服务器间连接通信的唯一通道;客户端后台处理推送消息包括:客户端前台在线时,客户端后台将推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息在应用程序内显示;客户端前台离线时,客户端后台将推送消息通过系统的通知机制在系统通知中心显示。上述中,当客户端前台上线时,其检查客户端后台是否已经存在于操作系统后台,如果存在,就向客户端后台发送用户启动应用程序的消息;如果客户端后台尚未启动,就启动客户端后台并向客户端后台发送用户启动应用程序的消息。为了实现客户端后台的保活,上述的客户端后台为C语言编写,通常来说,安卓操作系统上的应用程序都是用Java语言来编写,Java编写的程序有个缺点就是占用内存比较多,很容易在内存紧张的时候被系统回收内存,导致进程退出,无法继续提供服务。而用C语言编写的程序,不依赖于Javaruntime,只依赖操作系统自带的软件环境,体积非常小,同级别进程更不容易被系统结束掉,而且可以完成网络通信的功能,满足实际需求。此外,还设有防止客户端后台被杀掉的看门狗进程,该看门狗进程监控客户端后台运行状况并在客户端后台被杀死时再将其启动。本专利技术还提供了一种安卓客户端通信装置,其特殊之处在于,包括有:socket模块,用于建立客户端与服务器间的唯一连接通信通道:客户端后台与服务器间的socket通道;消息接收模块,用于通过socket通道接收服务器推送的消息;消息处理和应答模块,用于处理推送消息并通过socket通道返回应答消息。上述的消息处理和应答模块处理推送消息包括有:客户端前台在线时,将推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息显示;客户端前台离线时,将推送消息通过系统的通知机制显示。看门狗模块,监控客户端后台运行状况并在客户端后台被杀死时再将其启动。本专利技术的有益效果是:可以保证大多数情况下的进程保活(除非用户主动采取措施退出后台进程),进而保证推送信息的到达率;并且不管在线和离线,后端服务器始终都是和客户端后台进行通信,处理方式没有差别,这使得后端服务程序不需要针对在线和离线的不同情况分别做处理,开发复杂程度大大降低。附图说明下面结合附图对本专利技术作进一步的说明。图1为本专利技术中安卓客户端与服务器进行连接和通信的示意图。图2为本专利技术中安卓客户端与服务器进行连接和通信方法的流程示意。图3安卓客户端通信装置的结构示意图。具体实施方式下面结合具体实施例对本专利技术作进一步地说明。实施例1该实施例提供了一种安卓客户端与服务器连接通信的方法,如图1、2所示,其包括:客户端后台与服务器之间建立持久连接socket通道,该socket通道为客户端与服务器间连接通信的唯一通道;客户端后台通过所述socket通道接收服务器推送的消息;当客户端前台在线时,客户端后台将推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息显示在应用程序内;客户端前台离线时,客户端后台将推送消息通过系统的通知机制显示。上述中,当所述的客户端前台上线时,其检查客户端后台是否已经存在于操作系统后台,如果存在,就向客户端后台发送用户启动应用程序的消息;如果客户端后台尚未启动,就启动客户端后台,并向客户端后台发送用户启动应用程序的消息。为了实现客户端后台的保活,上述的客户端后台为C语言编写,客户端后台负责消息推送,通常来说,安卓操作系统上本文档来自技高网
...
一种安卓客户端通信装置及与服务器进行连接通信的方法

【技术保护点】
一种安卓客户端与服务器进行连接通信的方法,包括:客户端后台与服务器之间建立持久连接socket通道;客户端后台通过所述socket通道接收服务器推送的消息;客户端后台处理所述推送消息并通过所述socket通道返回应答消息;其特征在于:所述客户端后台与服务器之间建立的socket通道为客户端与服务器间连接通信的唯一通道;所述客户端后台处理推送消息包括:客户端前台在线时,客户端后台将所述推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息显示;客户端前台离线时,客户端后台将所述推送消息通过系统的通知机制显示。

【技术特征摘要】
1.一种安卓客户端与服务器进行连接通信的方法,包括:客户端后台与服务器之间建立持久连接socket通道;客户端后台通过所述socket通道接收服务器推送的消息;客户端后台处理所述推送消息并通过所述socket通道返回应答消息;其特征在于:所述客户端后台与服务器之间建立的socket通道为客户端与服务器间连接通信的唯一通道;所述客户端后台处理推送消息包括:客户端前台在线时,客户端后台将所述推送消息以UNIX系统进程间通信的方式传递给客户端前台,客户端前台将推送消息显示;客户端前台离线时,客户端后台将所述推送消息通过系统的通知机制显示。2.根据权利要求1所述安卓客户端与服务器进行连接通信的方法,其特征在于:当所述的客户端前台上线时,其检查客户端后台是否已经存在于操作系统后台,如果存在,就向客户端后台发送用户启动应用程序的消息,客户端后台将所述推送消息以UNIX系统进程间通信的方式传递给客户端前台;如果客户端后台尚未启动,就启动客户端后台,并向客户端后台发送用户启动应用程序的消息,客户端后台将所述推送消息以UNIX系统进程间通信的方式传递给客户端前台。3.根据权利要求1所...

【专利技术属性】
技术研发人员:李云龙
申请(专利权)人:济南中维世纪科技有限公司
类型:发明
国别省市:山东,37

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

1