CN111555955B - 一种消息中心实现方法、装置、设备和介质 - Google Patents
一种消息中心实现方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111555955B CN111555955B CN202010221333.2A CN202010221333A CN111555955B CN 111555955 B CN111555955 B CN 111555955B CN 202010221333 A CN202010221333 A CN 202010221333A CN 111555955 B CN111555955 B CN 111555955B
- Authority
- CN
- China
- Prior art keywords
- message
- data
- center
- manufacturer
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Abstract
本发明提供一种消息中心实现方法、装置、设备和介质,方法包括步骤S1、通过API接口封装调用,实现将各应用系统的消息数据传输给服务端消息中心;步骤S2、服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;步骤S3、用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上。本发明优点:能够有效解决现有各个应用系统因职责不同而产生的数据孤岛问题,很好的实现了将各业务数据事件汇聚在一起,并由平台统一管理和引导使用者及时处理数据。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种消息中心实现方法、装置、设备和介质。
背景技术
随着越来越多的应用系统集成纳入到平台上,平台的功能和能力越来越完善和强大,但随之也给应用系统的使用者(用户)带来一定的困扰和阻力。首先,从使用者角度来看,平台的功能结构层次逐步加深,更多的功能需要使用者主动地去发现,同时功能结构层次越深,给使用者带来的交互体验越差。其次,平台中每个应用系统所扮演的角色是不同的,如协同审批系统主要提供在线审批单据的工作流程化;选课系统主要提供任课教师发布课程信息,学生参与选择;综合素质评价系统主要提供学生的日常行为评价、记录等。
由于每个系统的职责不同,系统的数据也被相互隔离,并产生数据孤岛;因此,如何将重要的业务数据事件汇聚在一起,由平台统一管理和引导使用者及时处理数据是当前亟需考虑和解决的。
发明内容
本发明要解决的技术问题,在于提供一种消息中心实现方法、装置、设备和介质,解决现有各个应用系统因职责不同而产生的数据孤岛问题,实现将业务数据事件汇聚在一起,由平台统一管理和引导使用者及时处理数据。
第一方面,本发明提供了一种消息中心实现方法,所述方法包括:
步骤S1、通过API接口封装调用,实现将各应用系统的消息数据传输给服务端消息中心;
步骤S2、服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
步骤S3、用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上。
进一步的,所述步骤S1具体包括:
步骤S11、初始化及获取集成开发包入口API实例对象;具体包括:构建入口API实例对象,设置API客户端的授权信息,获取消息数据的发送服务;
构建消息数据结构体;具体包括:创建消息数据工厂,设计消息数据的相关属性,生成消息数据结构体;
调用API方法,将消息数据发送到服务端消息中心;具体包括:调用消息数据发送API,查询消息数据的发送状态;
步骤S12、定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;
步骤S13、定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式。
进一步的,所述步骤S2具体包括:
步骤S21、服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成;
步骤S22、本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心,再由厂商消息中心将消息处理数据推送给自家的用户终端。
进一步的,所述步骤S3具体包括:
步骤S31、将底层连接通信逻辑进行封装,提供API接口服务;
步骤S32、本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;
步骤S33、根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。
第二方面,本发明提供了一种消息中心实现装置,所述装置包括消息接入模块、消息服务模块以及消息接收模块;
所述消息接入模块,用于通过API接口封装调用,实现将各应用系统的消息数据传输到服务端消息中心;
所述消息服务模块,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
所述消息接收模块,用于用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上。
进一步的,所述消息接入模块具体包括第一集成开发包单元、消息格式定义单元以及数据传输单元;
所述第一集成开发包单元,用于初始化及获取集成开发包入口API实例对象;具体包括:构建入口API实例对象,设置API客户端的授权信息,获取消息数据的发送服务;
构建消息数据结构体;具体包括:创建消息数据工厂,设计消息数据的相关属性,生成消息数据结构体;
调用API方法,将消息数据发送到服务端消息中心;具体包括:调用消息数据发送API,查询消息数据的发送状态;
所述消息格式定义单元,用于定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;
所述数据传输单元,用于定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式。
进一步的,所述消息服务模块具体包括消息流入处理单元以及消息流出处理单元;
所述消息流入处理单元,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成;
所述消息流出处理单元,用于本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心。
进一步的,所述消息接收模块具体包括第二集成开发包单元、消息通信单元以及消息呈现单元;
所述第二集成开发包单元,用于将底层连接通信逻辑进行封装,提供API接口服务;
所述消息通信单元,用于本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;
所述消息呈现单元,用于根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过将各应用系统的核心待办(等待用户处理)数据、通知提醒、后台处理反馈等行为汇聚起来,并按照应用系统进行消息分类、标签化,最终抽象成消息数据推送给用户。因此,通过本发明的技术方案,能够有效解决现有各个应用系统因职责不同而产生的数据孤岛问题,很好的实现了将各业务数据事件汇聚在一起,并由平台统一管理和引导使用者及时处理数据。本发明技术方案的主要功能可以总结为三个:汇集、处理和推送;其中,汇集涉及的是各应用系统的数据对接,本发明通过提供简单明了的API服务,使得各应用系统的开发人员能够快速的发起接口调用,从而很好的实现了数据的汇集;处理为服务端消息中心的内部流程,本发明通过采用消息队列来接收各类应用系统传输的消息数据,能够提高数据流入的吞吐量、提升应用系统的并发量和响应速度,同时将厂商消息中心接入到服务端消息中心,能够提高消息数据的到达率;推送是将消息处理数据推送给用户终端,本发明通过集成厂商内置消息通信,并通过厂商内置消息通信与各个厂商做对接,能够提供系统推送的稳定性,提高消息到达率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中一种消息中心实现方法的流程图;
图2为本发明实施例二中一种消息中心实现装置的结构原理图;
图3为本发明实施例三中电子设备的结构示意图;
图4为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种消息中心实现方法、装置、设备和介质,用于解决现有各个应用系统因职责不同而产生的数据孤岛问题,实现了将业务数据事件汇聚在一起,由平台统一管理和引导使用者及时处理数据。
本申请实施例中的技术方案,总体思路如下:本发明的技术方案主要在于实现汇集、处理和推送三个功能;其中,汇集功能是通过API接口封装调用,来实现将各应用系统的消息数据传输给服务端消息中心;处理功能是由消息处理链来对各应用系统的消息数据进行处理,从而得到消息处理数据;推送功能是由服务端消息中心将消息处理数据推送给用户终端,并在用户终端上对消息处理数据进行呈现。
实施例一
本实施例提供一种消息中心实现方法,如图1所示,所述方法包括:
步骤S1、通过API接口封装调用,实现将各应用系统的消息数据传输给服务端消息中心;
步骤S2、服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
步骤S3、用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上。
在本实施例中,所述步骤S1具体包括:
步骤S11、初始化及获取集成开发包入口API实例对象;具体包括:
构建入口API实例对象,
SchCloudClient client=SchCloudClient.getInstance();
设置API客户端的授权信息,
client.setServiceSession();
获取消息数据的发送服务,
ServiceFacade serviceFacade=client.getService();
AbilityService abilityService=serviceFacade.getAbilityService();
构建消息数据结构体;具体包括:
创建消息数据工厂,
TODOMessageBuilder todoMessageBuilder=new TODOMessageBuilder();
设计消息数据的相关属性,
todoMessageBuilder.setTitle();
todoMessageBuilder.setSecondTitle();
todoMessageBuilder.setWebContent();
todoMessageBuilder.setWebForwardUrl();
生成消息数据结构体,
TODOMessageModel todoMessageModel=todoMessageBuilder.build();
调用API方法,将消息数据发送到服务端消息中心;具体包括:
调用消息数据发送API,
ServiceValue<Void>resp=abilityService.pushTODOMessage(todoMessageModel);
查询消息数据的发送状态,
resp.isSuccess();
在具体集成开发包时,由消息中心服务开发组提供,由应用系统集成,通过提供简单明了的API服务,让各应用系统的开发人员能够快速发起接口调用。集成开发包按目前市场主流开发语言,分别提供了不同语言的技术实现,共包括JAVA版实现、C#版实现、PHP版实现及Python版实现;通过丰富的版本实现,可满足大部分应用系统的开发环境。
步骤S12、定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;程序流程如下:
A.消息数据字段(TODOMessageModel实例字段)
A1.消息标题
String title;
A2.消息副标题
String secondTitle;
A3.消息正文
String webContent;
String mobileContent;
A4.消息跳转地址
String webForwardUrl;
String mobileForwardUrl;
A5.消息来源
SourceType sourceType;
A6.消息附加项列表
List<AdditionContent>additionContentList;
A7.消息备注项列表
List<String>commentList;
A8.消息图片地址
StringpictureUrl;
A9.消息操作按钮
List<Action>actionList;
A10.消息接收人列表
List<TODOMessageDispatch>todoMessageDispatchList;
B.消息附加项字段(TODOMessageModel.AdditionContent实例字段)
B1.附加项名称
String key
B2.附加项内容
String value
C.消息操作按钮字段(TODOMessageModel.Action实例字段)
C1.按钮名称
String name;
C2.按钮类型代码
ActionCodeType actionCodeType;
C3.按钮跳转地址
String forwardUrl;
D.消息接收人字段(TODOMessageModel.TODOMessageDispatch实例字段)
D1.用户类型
UserType userType;
D2.目标标识
IntegertargetId;
D3.目标名称
String targetName;
D4.目标类型
TargetType targetType;
在具体进行消息格式定义时,由消息中心服务开发组定义统一的消息格式,由应用系统根据自身数据结构字段,结合实际需求设置到消息格式模板中。消息格式模板所包涵的内容项有消息标题、消息副标题、消息正文、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址、消息操作按钮、消息接收人列表、消息来源;其中,消息标题、消息正文、消息来源及消息接收人列表为必设项外,其余项均为非必设,应用系统可以根据具体业务需求合理地进行组合。
步骤S13、定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式;程序流程如下:
A.HTTP POST传输
HttpServiceRequest.requestService(String serviceUri,HttpServiceRequest.RespValueHandlerrespValueHandler);
B.RPC传输
RPCServiceRequest.requestService(ClassserviceProvider,ServiceHandlerserviceHandler);
在具体进行数据传输方式定义时,由消息中心服务开发组定义统一的传输技术,目前共提供两种传输方式,一种是RPC传输,另一种是HTTP POST传输;两种传输方式都已封装到集成开发包中,应用系统的开发人员可通过简单的API环境设置,完成传输方式的切换。
在本实施例中,所述步骤S2具体包括:
步骤S21、服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;具体的程序实现流程如下:
A.将消息数据放入消息队列
MessageResult messageResult=MessageProducer.produce(Messagemsg);
B.判断消息数据状态,失败的状态,进行重试,重试超过5次,生成失败预警日志
C.将消息状态回执返回给各应用系统
ServerResponse.write(messageId);
在本发明中,服务端消息中心在接收各类应用系统传输的消息数据后,为了提高数据流入的吞吐量、提升应用系统的并发量和响应速度,接收到的消息数据会被放入到消息队列,同时生成消息状态回执并快速响应给应用系统。消息队列消费线程会观察消息队列的状态,将最先入队的消息数据取出后交给消息处理链,由消息处理链对消息数据进行不同轮次的处理,最终生成可用于推送的消息处理数据。
为了防止网络故障等不可确定性因素,对加入到消息队列失败的消息数据进行多次重试放入,对多次重试后仍然失败的消息数据,则生成失败预警日志,并由后台人工排查原因;同时,各应用系统可将消息回执保存起来,以供后续可使用消息回执向消息服务系统查询消息数据的状态。
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成,且采用链条设计,可方便后续扩展新的处理行为;具体的程序实现流程如下:
A.消息数据消费线程持续从消息队列中获取消息数据
Message msg=MessageConsumer.onMessage();
B.将消息数据交给消息处理链
MessageHandlerChain.do(Message msg);
C.将处理过的消息处理数据交给负责消息流出的模块
MessagePushService.push(Message msg);
在本发明中,目前提供有消息数据校验行为类、消息分类汇总行为类以及消息存储行为类,其中,消息数据校验行为类主要用于对消息数据的格式进行有效性校验,如必设字段校验、文本长度校验、敏感词校验等,对校验非法的消息数据进行拦截过滤,生成预警日志;消息分类汇总行为类主要用于对消息数据中的关键字段进行分类汇总,方便后续业务查询,目前主要是按消息来源进行分类汇总;消息存储行为类主要用于将消息数据存储起来,提供后续的查询服务,目前主要是将消息数据存储到数据库。当然,在具体实施时还可以根据实际需要提供其他的行为类。
步骤S22、本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;当接收到用户终端的长连接请求时,首先校验请求是否被授权,对于未授权的连接请求直接拒绝,而授权通过的请求,则建立长连接通信通道,并根据授权参数(应用标识+应用密钥+用户标识)生成连接关系对照;为保障双方连接的长期活跃,双方采用心跳维护机制,每隔30秒发送一次心跳协议包,双方连接心跳超过1分钟未响应的,视为失活(无效的)连接,系统将强行断开并回收连接资源。具体的程序实现流程如下:
A.接收到用户终端的长连接请求
SocketServerHandler.channelRead0(ChannelHandlerContext ctx,Objectmsg);
B.用户终端长连接请求断开
SocketServerHandler.channelInactive(ChannelHandlerContext ctx);
C.用户终端长连接心跳超过1分钟未响应
SocketServerHandler.userEventTriggered(ChannelHandlerContext ctx,Object evt);
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;在具体实施时,当用户终端与消息中心通信服务建立连接后,由于用户终端环境受本地系统资源的限制,连接通信服务极有可能会被本地系统杀死,长连接通信被强行断开,进而导致最新消息数据无法送达到用户终端本地。而目前主流的用户终端硬件厂商都有提供各自的消息中心推送服务,该推送服务直接由用户终端的厂商本地系统长时间保护,属于系统级服务,所以能长时间运行在后台,不受本地系统其他资源的限制影响,更不会被本地系统杀死。所以当用户终端与消息中心通信服务连接被本地系统杀死后,可以利用该特性,直接将消息数据转发给厂商消息中心,再由厂商消息中心推送到自家的用户终端,提高消息数据的到达率。目前市场主流的终端硬件厂商都有提供消息中心接入接口,接入技术上都是采用HTTP请求方式,请求数据采用JSON格式;本服务主要参照不同厂商的接口文档,完成对接。
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心,再由厂商消息中心将消息处理数据推送给自家的用户终端。当然,如果消息数据通过以上两种方式仍无法推送成功,则将该消息数据的状态设为离线状态,等待用户终端与消息中心通信服务再次建立连接后,再进行推送;对于离线的消息数据系统自动保留3天,超过3天视为已失效消息,不再享受二次推送,已失效消息将被归档。具体的程序实现流程如下:
A.消息数据推送入口方法
TerminalConnectionManager.accept(Message msg);
B.从通信注册表中查找用户终端通信连接信息
TerminalConnection connection=connectionCache.get(Message msg);
B1.若用户终端通信连接无效,根据通信连接信息中的厂商类型字段,调用厂商消息中心接口
C.将消息数据推送到用户终端
TerminalConnection.receiveMessage(Message msg);
在本实施例中,所述步骤S3具体包括:
步骤S31、将底层连接通信逻辑进行封装,提供API接口服务;在具体实施时,由消息中心服务开发组提供,由用户终端应用软件集成实现,通过集成开发包将繁杂的底层连接通信逻辑进行封装,并提供简单明了的API;集成开发包按目前市场主流开发语言,分别提供了不同语言的技术实现,共包括Android版实现、Objective-C版实现,通过丰富的版本实现,可满足大部分终端应用系统的开发环境。
步骤S32、本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;在具体实施时,当请求建立长连接通信时,除了服务端消息中心返回鉴权失败外,其余情况下如网络连接失败、网络波动、意外断开等都会每隔10秒尝试重新请求连接,直到连接成功;同时,为了保障长连接通道在空闲时(无消息推送事件)的活跃及有效性,每隔30秒向长连接通道发送心跳协议包;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;在具体实施时,当本地消息中心通信服务被本地系统强制杀死后,服务端消息中心观察到连接已被断开,后续的消息处理数据推送被强制转发给厂商消息中心,厂商消息中心将消息处理数据推送给厂商内置消息通信;所以出现本地消息中心通信服务断开时,厂商内置消息通信将直接接管消息数据;集成厂商内置消息通信需要与各个厂商做对接,集成的厂商越多,系统的推送越稳定,消息到达率就越高;
步骤S33、根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。由于系统抽象了消息应用场景实现接口,因此各业务场景可结合实际需求,扩展相应的场景实现类程序;该设计采用面向接口的方式,可提高应用程序的扩展性。在具体实施时,还可以根据实际需要设置通用的消息模板,开发者可以直接采用内置通用模板,也可以独自开发新模板,具体可根据实际业务需求选择。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
在本实施例中提供了一种消息中心实现装置,如图2所示,所述装置包括消息接入模块、消息服务模块以及消息接收模块;
所述消息接入模块,用于通过API接口封装调用,实现将各应用系统的消息数据传输给服务端消息中心;
所述消息服务模块,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
所述消息接收模块,用于用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上。
在本实施例中,所述消息接入模块具体包括第一集成开发包单元、消息格式定义单元以及数据传输单元;
所述第一集成开发包单元,用于初始化及获取集成开发包入口API实例对象;具体包括:
构建入口API实例对象,
SchCloudClient client=SchCloudClient.getInstance();
设置API客户端的授权信息,
client.setServiceSession();
获取消息数据的发送服务,
ServiceFacade serviceFacade=client.getService();
AbilityService abilityService=serviceFacade.getAbilityService();
构建消息数据结构体;具体包括:
创建消息数据工厂,
TODOMessageBuilder todoMessageBuilder=newTODOMessageBuilder();
设计消息数据的相关属性,
todoMessageBuilder.setTitle();
todoMessageBuilder.setSecondTitle();
todoMessageBuilder.setWebContent();
todoMessageBuilder.setWebForwardUrl();
生成消息数据结构体,
TODOMessageModel todoMessageModel=todoMessageBuilder.build();
调用API方法,将消息数据发送到服务端消息中心;具体包括:
调用消息数据发送API,
ServiceValue<Void>resp=abilityService.pushTODOMessage(todoMessageModel);
查询消息数据的发送状态,
resp.isSuccess();
在具体集成开发包时,由消息中心服务开发组提供,由应用系统集成,通过提供简单明了的API服务,让各应用系统的开发人员能够快速发起接口调用。集成开发包按目前市场主流开发语言,分别提供了不同语言的技术实现,共包括JAVA版实现、C#版实现、PHP版实现及Python版实现;通过丰富的版本实现,可满足大部分应用系统的开发环境。
所述消息格式定义单元,用于定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;程序流程如下:
A.消息数据字段(TODOMessageModel实例字段)
A1.消息标题
String title;
A2.消息副标题
String secondTitle;
A3.消息正文
String webContent;
String mobileContent;
A4.消息跳转地址
String webForwardUrl;
String mobileForwardUrl;
A5.消息来源
SourceType sourceType;
A6.消息附加项列表
List<AdditionContent>additionContentList;
A7.消息备注项列表
List<String>commentList;
A8.消息图片地址
StringpictureUrl;
A9.消息操作按钮
List<Action>actionList;
A10.消息接收人列表
List<TODOMessageDispatch>todoMessageDispatchList;
B.消息附加项字段(TODOMessageModel.AdditionContent实例字段)
B1.附加项名称
String key
B2.附加项内容
String value
C.消息操作按钮字段(TODOMessageModel.Action实例字段)
C1.按钮名称
String name;
C2.按钮类型代码
ActionCodeType actionCodeType;
C3.按钮跳转地址
String forwardUrl;
D.消息接收人字段(TODOMessageModel.TODOMessageDispatch实例字段)
D1.用户类型
UserType userType;
D2.目标标识
IntegertargetId;
D3.目标名称
String targetName;
D4.目标类型
TargetType targetType;
在具体进行消息格式定义时,由消息中心服务开发组定义统一的消息格式,由应用系统根据自身数据结构字段,结合实际需求设置到消息格式模板中。消息格式模板所包涵的内容项有消息标题、消息副标题、消息正文、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址、消息操作按钮、消息接收人列表、消息来源;其中,消息标题、消息正文、消息来源及消息接收人列表为必设项外,其余项均为非必设,应用系统可以根据具体业务需求合理地进行组合。
所述数据传输单元,用于定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式;程序流程如下:
A.HTTP POST传输
HttpServiceRequest.requestService(String serviceUri,HttpServiceRequest.RespValueHandlerrespValueHandler);
B.RPC传输
RPCServiceRequest.requestService(ClassserviceProvider,ServiceHandlerserviceHandler);
在具体进行数据传输方式定义时,由消息中心服务开发组定义统一的传输技术,目前共提供两种传输方式,一种是RPC传输,另一种是HTTP POST传输;两种传输方式都已封装到集成开发包中,应用系统的开发人员可通过简单的API环境设置,完成传输方式的切换。
在本实施例中,所述消息服务模块具体包括消息流入处理单元以及消息流出处理单元;
所述消息流入处理单元,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;具体的程序实现流程如下:
A.将消息数据放入消息队列
MessageResult messageResult=MessageProducer.produce(Messagemsg);
B.判断消息数据状态,失败的状态,进行重试,重试超过5次,生成失败预警日志
C.将消息状态回执返回给各应用系统
ServerResponse.write(messageId);
在本发明中,服务端消息中心在接收各类应用系统传输的消息数据后,为了提高数据流入的吞吐量、提升应用系统的并发量和响应速度,接收到的消息数据会被放入到消息队列,同时生成消息状态回执并快速响应给应用系统。消息队列消费线程会观察消息队列的状态,将最先入队的消息数据取出后交给消息处理链,由消息处理链对消息数据进行不同轮次的处理,最终生成可用于推送的消息处理数据。
为了防止网络故障等不可确定性因素,对加入到消息队列失败的消息数据进行多次重试放入,对多次重试后仍然失败的消息数据,则生成失败预警日志,并由后台人工排查原因;同时,各应用系统可将消息回执保存起来,以供后续可使用消息回执向消息服务系统查询消息数据的状态。
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成,且采用链条设计,可方便后续扩展新的处理行为;具体的程序实现流程如下:
A.消息数据消费线程持续从消息队列中获取消息数据
Message msg=MessageConsumer.onMessage();
B.将消息数据交给消息处理链
MessageHandlerChain.do(Message msg);
C.将处理过的消息处理数据交给负责消息流出的模块
MessagePushService.push(Message msg);
在本发明中,目前提供有消息数据校验行为类、消息分类汇总行为类以及消息存储行为类,其中,消息数据校验行为类主要用于对消息数据的格式进行有效性校验,如必设字段校验、文本长度校验、敏感词校验等,对校验非法的消息数据进行拦截过滤,生成预警日志;消息分类汇总行为类主要用于对消息数据中的关键字段进行分类汇总,方便后续业务查询,目前主要是按消息来源进行分类汇总;消息存储行为类主要用于将消息数据存储起来,提供后续的查询服务,目前主要是将消息数据存储到数据库。当然,在具体实施时还可以根据实际需要提供其他的行为类。
所述消息流出处理单元,用于本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;当接收到用户终端的长连接请求时,首先校验请求是否被授权,对于未授权的连接请求直接拒绝,而授权通过的请求,则建立长连接通信通道,并根据授权参数(应用标识+应用密钥+用户标识)生成连接关系对照;为保障双方连接的长期活跃,双方采用心跳维护机制,每隔30秒发送一次心跳协议包,双方连接心跳超过1分钟未响应的,视为失活(无效的)连接,系统将强行断开并回收连接资源。具体的程序实现流程如下:
A.接收到用户终端的长连接请求
SocketServerHandler.channelRead0(ChannelHandlerContext ctx,Objectmsg);
B.用户终端长连接请求断开
SocketServerHandler.channelInactive(ChannelHandlerContext ctx);
C.用户终端长连接心跳超过1分钟未响应
SocketServerHandler.userEventTriggered(ChannelHandlerContext ctx,Object evt);
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;在具体实施时,当用户终端与消息中心通信服务建立连接后,由于用户终端环境受本地系统资源的限制,连接通信服务极有可能会被本地系统杀死,长连接通信被强行断开,进而导致最新消息数据无法送达到用户终端本地。而目前主流的用户终端硬件厂商都有提供各自的消息中心推送服务,该推送服务直接由用户终端的厂商本地系统长时间保护,属于系统级服务,所以能长时间运行在后台,不受本地系统其他资源的限制影响,更不会被本地系统杀死。所以当用户终端与消息中心通信服务连接被本地系统杀死后,可以利用该特性,直接将消息数据转发给厂商消息中心,再由厂商消息中心推送到自家的用户终端,提高消息数据的到达率。目前市场主流的终端硬件厂商都有提供消息中心接入接口,接入技术上都是采用HTTP请求方式,请求数据采用JSON格式;本服务主要参照不同厂商的接口文档,完成对接。
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心,再由厂商消息中心将消息处理数据推送给自家的用户终端。当然,如果消息数据通过以上两种方式仍无法推送成功,则将该消息数据的状态设为离线状态,等待用户终端与消息中心通信服务再次建立连接后,再进行推送;对于离线的消息数据系统自动保留3天,超过3天视为已失效消息,不再享受二次推送, 已失效消息将被归档。具体的程序实现流程如下:
A.消息数据推送入口方法
TerminalConnectionManager.accept(Message msg);
B.从通信注册表中查找用户终端通信连接信息
TerminalConnection connection=connectionCache.get(Message msg);
B1.若用户终端通信连接无效,根据通信连接信息中的厂商类型字段,调用厂商消息中心接口
C.将消息数据推送到用户终端
TerminalConnection.receiveMessage(Message msg);
在本实施例中,所述消息接收模块具体包括第二集成开发包单元、消息通信单元以及消息呈现单元;
所述第二集成开发包单元,用于将底层连接通信逻辑进行封装,提供API接口服务;在具体实施时,由消息中心服务开发组提供,由用户终端应用软件集成实现,通过集成开发包将繁杂的底层连接通信逻辑进行封装,并提供简单明了的API;集成开发包按目前市场主流开发语言,分别提供了不同语言的技术实现,共包括Android版实现、Objective-C版实现,通过丰富的版本实现,可满足大部分终端应用系统的开发环境。
所述消息通信单元,用于本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;在具体实施时,当请求建立长连接通信时,除了服务端消息中心返回鉴权失败外,其余情况下如网络连接失败、网络波动、意外断开等都会每隔10秒尝试重新请求连接,直到连接成功;同时,为了保障长连接通道在空闲时(无消息推送事件)的活跃及有效性,每隔30秒向长连接通道发送心跳协议包;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;在具体实施时,当本地消息中心通信服务被本地系统强制杀死后,服务端消息中心观察到连接已被断开,后续的消息处理数据推送被强制转发给厂商消息中心,厂商消息中心将消息处理数据推送给厂商内置消息通信;所以出现本地消息中心通信服务断开时,厂商内置消息通信将直接接管消息数据;集成厂商内置消息通信需要与各个厂商做对接,集成的厂商越多,系统的推送越稳定,消息到达率就越高;
所述消息呈现单元,用于根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。由于系统抽象了消息应用场景实现接口,因此各业务场景可结合实际需求,扩展相应的场景实现类程序;该设计采用面向接口的方式,可提高应用程序的扩展性。在具体实施时,还可以根据实际需要设置通用的消息模板,开发者可以直接采用内置通用模板,也可以独自开发新模板,具体可根据实际业务需求选择。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图3所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图4所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:通过将各应用系统的核心待办(等待用户处理)数据、通知提醒、后台处理反馈等行为汇聚起来,并按照应用系统进行消息分类、标签化,最终抽象成消息数据推送给用户。因此,通过本发明的技术方案,能够有效解决现有各个应用系统因职责不同而产生的数据孤岛问题,很好的实现了将各业务数据事件汇聚在一起,并由平台统一管理和引导使用者及时处理数据。本发明技术方案的主要功能可以总结为三个:汇集、处理和推送;其中,汇集涉及的是各应用系统的数据对接,本发明通过提供简单明了的API服务,使得各应用系统的开发人员能够快速的发起接口调用,从而很好的实现了数据的汇集;处理为服务端消息中心的内部流程,本发明通过采用消息队列来接收各类应用系统传输的消息数据,能够提高数据流入的吞吐量、提升应用系统的并发量和响应速度,同时将厂商消息中心接入到服务端消息中心,能够提高消息数据的到达率;推送是将消息处理数据推送给用户终端,本发明通过集成厂商内置消息通信,并通过厂商内置消息通信与各个厂商做对接,能够提供系统推送的稳定性,提高消息到达率。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种消息中心实现方法,其特征在于:所述方法包括:
步骤S1、通过API接口封装调用,实现将各应用系统的消息数据传输给服务端消息中心;
步骤S2、服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
步骤S3、用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上;
所述步骤S1具体包括:
步骤S11、初始化及获取集成开发包入口API实例对象;具体包括:构建入口API实例对象,设置API客户端的授权信息,获取消息数据的发送服务;
构建消息数据结构体;具体包括:创建消息数据工厂,设计消息数据的相关属性,生成消息数据结构体;
调用API方法,将消息数据发送到服务端消息中心;具体包括:调用消息数据发送API,查询消息数据的发送状态;
步骤S12、定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;
步骤S13、定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式;
所述步骤S2具体包括:
步骤S21、服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;对加入到消息队列失败的消息数据进行重试,若重试的失败次数超过设定的阈值,则生成失败预警日志;
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成;
步骤S22、本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心,再由厂商消息中心将消息处理数据推送给自家的用户终端;
所述步骤S3具体包括:
步骤S31、将底层连接通信逻辑进行封装,提供API接口服务;
步骤S32、本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;
步骤S33、根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。
2.一种消息中心实现装置,其特征在于:所述装置包括消息接入模块、消息服务模块以及消息接收模块;
所述消息接入模块,用于通过API接口封装调用,实现将各应用系统的消息数据传输到服务端消息中心;
所述消息服务模块,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据交给消息处理链进行处理得到消息处理数据,将消息处理数据推送给用户终端;
所述消息接收模块,用于用户终端接收服务端消息中心推送的消息处理数据,并将消息处理数据呈现在用户终端上;
所述消息接入模块具体包括第一集成开发包单元、消息格式定义单元以及数据传输单元;
所述第一集成开发包单元,用于初始化及获取集成开发包入口API实例对象;具体包括:构建入口API实例对象,设置API客户端的授权信息,获取消息数据的发送服务;
构建消息数据结构体;具体包括:创建消息数据工厂,设计消息数据的相关属性,生成消息数据结构体;
调用API方法,将消息数据发送到服务端消息中心;具体包括:调用消息数据发送API,查询消息数据的发送状态;
所述消息格式定义单元,用于定义消息格式模板,所述消息格式模板的内容项包括必设项以及非必设项,其中,必设项包括消息标题、消息正文、消息来源以及消息接收人列表,非必设项包括消息副标题、消息图片地址、消息附加项列表、消息备注项列表、消息跳转地址以及消息操作按钮;
所述数据传输单元,用于定义统一的数据传输方式,所述数据传输方式至少包括RPC传输方式以及HTTP POST传输方式;
所述消息服务模块具体包括消息流入处理单元以及消息流出处理单元;
所述消息流入处理单元,用于服务端消息中心接收各应用系统传输的消息数据,将消息数据放入到消息队列中,生成消息数据的入列状态回执,并将消息数据的入列状态回执返回给对应的应用系统;对加入到消息队列失败的消息数据进行重试,若重试的失败次数超过设定的阈值,则生成失败预警日志;
通过消息队列消费线程持续从消息队列中获取消息数据,将获取的消息数据交给消息处理链进行处理得到消息处理数据,所述消息处理链由一组消息处理行为类组成;
所述消息流出处理单元,用于本地消息中心通信注册,具体包括:与用户终端建立长连接通信机制,检测长连接的有效性,维护双方长连接的心跳;
厂商消息中心接入,具体包括:根据终端硬件厂商提供的厂商消息中心接口,将厂商消息中心接入到服务端消息中心;
消息推送,具体包括:消息推送程序先从本地消息中心通信注册表中查找用户终端通信连接信息,且如果通信连接信息表明该连接有效,则直接将消息处理数据写入到该连接中推送给用户终端;如果通信连接信息表明该连接无效,则根据通信连接信息中的厂商类型字段,调用厂商消息中心接口将消息处理数据推送给厂商消息中心;
所述消息接收模块具体包括第二集成开发包单元、消息通信单元以及消息呈现单元;
所述第二集成开发包单元,用于将底层连接通信逻辑进行封装,提供API接口服务;
所述消息通信单元,用于本地消息中心通信,具体包括:与服务端消息中心建立长连接通信,监听服务端消息中心的推送事件,且在监听到服务端消息中心的推送事件后,将事件的消息处理数据协议包解析成消息结构实体对象;
厂商内置消息通信,具体包括:与厂商消息中心进行对接,在本地消息中心通信断开时,监听厂商消息中心推送的广播事件,且在监听到厂商消息中心的广播事件后,将广播事件的消息处理数据协议包解析成消息结构实体对象;
所述消息呈现单元,用于根据消息结构实体对象中的消息来源和类型,由消息呈现程序将消息结构实体对象映射为相应的消息应用场景实现类。
3.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1所述的方法。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221333.2A CN111555955B (zh) | 2020-03-26 | 2020-03-26 | 一种消息中心实现方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221333.2A CN111555955B (zh) | 2020-03-26 | 2020-03-26 | 一种消息中心实现方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111555955A CN111555955A (zh) | 2020-08-18 |
CN111555955B true CN111555955B (zh) | 2022-08-05 |
Family
ID=72002405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010221333.2A Active CN111555955B (zh) | 2020-03-26 | 2020-03-26 | 一种消息中心实现方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111555955B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583893B (zh) * | 2020-11-19 | 2024-04-30 | 银捷尼科(福建)科技有限公司 | 一种Android终端统一通道通信方法及终端 |
CN113923094A (zh) * | 2021-09-01 | 2022-01-11 | 浙江绿城未来数智科技有限公司 | 一种智慧社区异构系统消息互通的方法 |
CN115344331B (zh) * | 2022-10-14 | 2023-02-10 | 杭州城市大脑有限公司 | 基于城市大脑一网统管的接口数据动态提取方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与系统 |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送系统 |
CN103677844A (zh) * | 2013-12-20 | 2014-03-26 | 国云科技股份有限公司 | 一种基于消息链的轻量级数据处理框架 |
CN108449410A (zh) * | 2018-03-19 | 2018-08-24 | 深信服科技股份有限公司 | 一种云平台中消息管理方法、系统及相关装置 |
CN109787882A (zh) * | 2018-12-28 | 2019-05-21 | 广东益萃网络科技有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN109814954A (zh) * | 2017-11-21 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 推送消息接收方法、装置、存储介质和计算机设备 |
CN110290049A (zh) * | 2019-05-20 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 消息推送方法、服务器及计算机可读存储介质 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732810B2 (en) * | 2011-10-27 | 2014-05-20 | Cellco Partnership | IP push platform and connection protocol in a push notification framework |
-
2020
- 2020-03-26 CN CN202010221333.2A patent/CN111555955B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与系统 |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送系统 |
CN103677844A (zh) * | 2013-12-20 | 2014-03-26 | 国云科技股份有限公司 | 一种基于消息链的轻量级数据处理框架 |
CN109814954A (zh) * | 2017-11-21 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 推送消息接收方法、装置、存储介质和计算机设备 |
CN108449410A (zh) * | 2018-03-19 | 2018-08-24 | 深信服科技股份有限公司 | 一种云平台中消息管理方法、系统及相关装置 |
CN109787882A (zh) * | 2018-12-28 | 2019-05-21 | 广东益萃网络科技有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN110290049A (zh) * | 2019-05-20 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 消息推送方法、服务器及计算机可读存储介质 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111555955A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111555955B (zh) | 一种消息中心实现方法、装置、设备和介质 | |
US11711682B2 (en) | Cross-resource subscription for M2M service layer | |
US10292011B2 (en) | System and method for location based exchange network | |
US10477994B2 (en) | System and method for location based exchanges of data facilitiating distributed locational applications | |
US7856498B2 (en) | Collaborative alert management and monitoring | |
CN108462750A (zh) | 分布式调用追踪方法、业务系统、监控系统及存储介质 | |
US8533323B2 (en) | Determining operational status of a mobile device capable of executing server-side applications | |
US20110231478A1 (en) | System, Server, and Mobile Device for Content Provider Website Interaction and Method Therefore | |
US20080270433A1 (en) | Trusted access by an extendible framework system, article of manufacture, and computer program product | |
US20060031234A1 (en) | Systems and methods for a collaborative group chat | |
US8156479B2 (en) | System and method of monitoring dynamic scopes in synchronous and asynchronous calls | |
US20050278294A1 (en) | Systems and methods for a collaboration presence framework | |
US20030055829A1 (en) | Method and apparatus for automatic notification of database events | |
CN102946343A (zh) | 访问音视频社区虚拟房间的方法和系统 | |
US20080153464A1 (en) | Methods and systems for indicating the occurrence of an event | |
US20240089343A1 (en) | Service layer-based methods to enable efficient analytics of iot data | |
Robinson | Context management in mobile environments | |
CN116521383A (zh) | 多媒体数据检测方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |