一种航旅多客户端消息通知系统及其方法
技术领域
本发明涉及一种航旅多客户端消息通知系统及其方法,通过该系统或方法,多种手机平台能够与服务端进行无实时连接的消息交互,服务端动态适配客户端。
背景技术
手机作为一个现代科技产物,不仅是方便的通信工具,而且在信息管理方面也起着重要的作用。手机上网已经慢慢地进入了人们的生活,早期手机上网比较单一,一般采用Wap方式浏览网页,随着技术的发展,智能手机的出现让手机上网已不再局限于使用Wap方式,可以采用客户端方式直接访问internet。目前,手机品种和型号多的让人目不暇接,各种智能手机应用也是层出不穷,从而使得手机客户端与服务器间的信息交互变的多样化。
本法的目的在于提供一款为用户提供以行程为中心的多服务的手机应用,注册用户产生行程后,该产品将提供一系列服务,诸如行程分享,行程定制等,这些过程需要服务端与手机客户端的信息交互才能完成,而手机客户端由于种类繁多,服务端动态识别客户端平台,所以这是一种多客户端交互模式,更主要的是服务端针对多客户端可以采取不同的消息通知模式,服务端主动向不同平台客户端系统用户下推消息。
发明内容
本发明提供一种航旅多客户端消息通知系统及其方法,由客户端系统与服务端系统组成。客户端系统包括客户端应用模块;服务端系统包括:信息采集模块,平台适配模块,消息通知模块。
客户端应用模块负责注册登陆并提供服务端所需参数信息,并接收来自服务端系统的消息通知。
信息采集模块负责维护更新一份用户设备映射列表,它是用户信息与手机特征码的映射关系列表。当有客户端访问时,服务端信息采集模块解析客户端访问协议,获取客户端手机平台类型,然后查询用户id是否在用户设备映射列表,最后根据手机平台类型来更新用户设备映射列表,添加或删记录。
平台适配模块首先查询消息库未发送状态消息,获取消息对应的用户id,然后根据id查询用户设备映射列表的结果选择使用消息通知模块。
消息通知模块由两个子模块构成,模块A处理iPhone消息,模块B处理Android、Symbian消息。模块A根据用户id查询用户设备映射列表取得用户手机特征码,再将消息与特征码发送到苹果服务器,由苹果服务器通知手机用户。模块B根据客户端访问请求动态响应,根据客户端用户id查询消息库后直接发送消息通知。
本发明还提供一种航旅多客户端消息通知方法,包括如下步骤:
步骤1,客户端应用模块进行用户注册登陆,提交原始数据。
步骤2,信息采集模块解析客户端请求协议,获取客户端手机平台类型,维护更新用户设备映射列表;
步骤3,平台适配模块查询消息库未发送状态消息,根据消息对应用户id判断其是否在用户设备映射列表中,判断此用户id对应手机平台类型,来决定执行后续消息通知;
步骤4,消息通知模块中的模块A发送消息到苹果服务器,由苹果服务器发送到客户端手机,模块B直接发送消息到客户端手机;
在步骤1中,客户端应用模块首先校验旅客注册数据是否有效,如果无效,则返回错误提示,旅客注册登陆后,旅客信息提交到服务端。
在步骤2中,信息采集模块解析客户端请求协议,获取客户端手机平台类型,根据客户端用户id查询用户设备映射列表是否存在此id,并进一步根据当前手机平台类型决定是添加还是删除用户设备映射列表记录,保持列表中当前手机的用户设备映射关系是最近一次登陆的记录;
在步骤3中,平台适配模块定期查询消息库中是否存在未发送状态消息,当存在未发送消息时,根据消息对应用户id查询用户设备映射列表,判断此用户id对应手机平台类型。
在步骤4中,根据步骤3中判断的手机平台类型决定由模块A或者模块B执行消息发送,模块A将消息内容与用户设备特征码发送到苹果服务器,由苹果服务器下推消息;模块B根据用户id直接查询消息库是否存在此id对应消息,如果存在则直接发送消息到客户端手机。
本发明重在服务端针对多客户端使用动态适配技术,根据各客户端类型决定采取不同的消息通知方式。
附图说明
图1为本发明一种航旅客户端消息通知系统及其方法方框图;
图2为本发明一种航旅客户端消息通知系统及其方法总体流程图;
图3为服务端信息采集模块所执行的处理流程图;
图4为平台适配模块所执行的处理流程图;
图5为模块A所执行的处理流程图;
图6为模块B所执行的处理流程图;
具体实施方式
如图1所示,本发明一种航旅多客户端消息通知系统由客户端系统和服务端系统构成,客户端系统包括客户端应用模块;服务端系统包括:信息采集模块,平台适配模块,消息通知模块。服务端由两台IBM小型机组成应用服务器集群,两台小型机构成HTTP接入服务器,一台小型机构成数据库系统。HTTP接入服务器负责接收所有请求,然后根据负载均衡将请求分配到应用服务器集群其中一台。应用服务器处理成功后会将数据记录写入数据库服务器。
客户端应用模块以不同的手机平台应用提供给旅客注册登陆,验证注册信息,然后将其提交到服务端系统,同时客户端应用模块也提供可以访问的各种手机平台协议。
信息采集模块负责维护更新一份用户设备映射列表,它是用户信息与手机特征码的映射列表。当有客户端访问时,信息采集模块解析客户端访问协议,获取客户端手机平台类型,然后根据用户id查询用户设备映射列表,判断是否存在此id,如果不存在根据之前获取的手机平台类型判断是否为iPhone,若是就添加此id与手机特征码映射关系,若不是则结束;如果存在id则根据手机平台类型判断是否为Android或Symbian,若是就删除原先的id与手机特征码映射关系,更新列表,若不是则结束。
平台适配模块查询消息库中未发送状态消息,根据消息对应用户id查询用户设备映射列表是否存在记录,如果存在表示此用户id对应消息为iPhone用户消息,由模块A执行下一步消息通知程序;如果不存在表示对应消息为Android或Symbian用户消息,由模块B等待消息通知程序执行。
消息通知模块由两个子模块,模块A和模块B构成,模块A处理iPhone消息,模块B处理Android、Symbian消息。模块A根据用户id查询用户设备映射列表取得用户手机特征码,再将消息与特征码发送到苹果消息服务器,由苹果服务器通知手机用户。模块B动态响应客户端访问请求,根据客户端用户id查询消息库是否存在未发送状态消息,如果存在直接发送,不存在则结束。
如图2所示,本发明一种航旅多客户端消息通知系统及其方法,包括如下步骤:
步骤1,客户端应用模块进行用户注册登陆,提交原始数据。
步骤2,信息采集模块解析客户端请求协议,获取客户端手机平台类型,维护更新用户设备映射列表;
步骤3,平台适配模块查询消息库有未发送状态消息,根据消息对应用户id查询用户设备映射列表,判断此用户id对应手机平台类型,来决定执行后续消息通知;
步骤4,消息通知模块发送消息通知到客户端手机;
如图3所示,本发明的服务端信息采集模块,包括如下步骤:
步骤1,解析客户端访问协议,获取客户端手机平台类型;
步骤2,根据客户端用户id查询用户设备映射列表判断是否存在记录;
步骤3,如果是存在记录且当前客户端为Android或Symbian,删除用户设备映射列表记录;如果不存在记录且当前客户端为iPhone,添加用户设备映射列表记录;
如图4所示,本发明的服务端平台适配模块,包括如下步骤:
步骤1,查询消息库未发送状态消息及对应用户id;
步骤2,根据用户id判断其是否存在于用户设备映射列表中;
步骤3,如果存在,则执行消息通知;
如图5所示,本发明的服务端消息通知模块,其模块A执行如下处理步骤:
步骤1,根据用户id查询用户设备映射列表获取客户端手机特征码;
步骤2,发送消息内容与手机特征码到苹果服务器;
步骤3,苹果服务器发送消息通知到客户端手机;
如图6所示,本发明的服务端消息通知模块,其模块B执行如下步骤:
步骤1,模块B响应客户端请求并获取客户端用户id;
步骤2,根据用户id查询消息库未发送消息;
步骤3,发送消息并将消息状态置为已发送;
现举例说明如下,旅客使用iPhone手机客户端注册登陆“航旅纵横”产品,提交服务端所需信息。
信息采集模块解析客户端请求后,将用户id与iPhone手机特征码映射记录添加到用户设备映射列表中,当消息库有该用户消息时,平台适配程序根据消息对应用户id查询用户设备映射列表,找到存在记录,说明该条消息需要发送到iPhone手机平台,然后消息通知模块A将消息与手机特征码发送到苹果服务器,最后推送到iPhone手机。
如果旅客使用Android(或Symbian)手机客户端再次登陆,服务端解析客户端请求,查询用户id已经存在于用户设备映射列表中并且当前登陆平台类型为Android(或Symbian),删除用户设备映射列表中用户id记录。当消息库有用户消息时,平台适配模块直接查询消息库是否存在用户id相应的消息,最后由消息通知模块B发送消息到客户端平台。