一种基于nodejs的消息提醒系统与方法技术方案

技术编号:24205607 阅读:24 留言:0更新日期:2020-05-20 14:31
本发明专利技术涉及消息提醒领域,具体提供了一种基于nodejs的消息提醒方法。与现有技术相比,本发明专利技术的一种基于nodejs的消息提醒方法,以nodejs为基础技术,Wed网页建立socket长连接的方式保持会话,实时接收消息,将用户的消息存放至redis服务中,使nodejs服务端能集成部署,以至发送消息的同时异步保存数据。实现消息的实时发送接收,避免了页面轮循造成的数据库以及页面压力,使得系统页面更加稳定,具有良好的推广价值。

A message reminder system and method based on nodejs

【技术实现步骤摘要】
一种基于nodejs的消息提醒系统与方法
本专利技术涉及消息提醒领域,具体提供一种基于nodejs的消息提醒系统及方法。
技术介绍
Nodejs是一个ChromeV8引擎的JavaScript运行环境。Nodejs使用了一个事件驱动、非阻塞式I/O的模型。Node是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。发布于2009年5月,由RyanDahl开发,实质是对ChromeV8引擎进行了封装。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于ChromeJavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。目前,针对系统内的消息提醒,多半是调用接口将消息存在数据库中,然后页面启动轮循,反复调用查询接口,做到消息提醒的业务。时间长了页面出现卡顿,数据库压力增大,可能造成数据库卡死现象。尤其是在电商业务系统中,对消息实时性要求性较高,出现卡死现象会严重影响工作效率,如何避免这样的现象发生是本领域技术人员要亟需解决的问题。
技术实现思路
本专利技术是针对上述现有技术的不足,提供一种设计合理,安全适用的基于nodejs的消息提醒系统。本专利技术进一步的技术任务是提供一种实用性强的基于nodejs的消息提醒方法。本专利技术解决其技术问题所采用的技术方案是:一种基于nodejs的消息提醒系统,由Web前端模块、nodejs服务端模块和消息存储服务模块组成,Web前端模块和nodejs服务端模块连接,nodejs服务端模块与消息存储服务模块连接;所述Web前端模块包括连接子模块、心跳重连子模块、消息监听子模块和消息提醒子模块,所述连接子模块用于调用服务端暴露的socket端口;所述心跳重连子模块用于服务端收到信息做相应的回复;所述消息监听子模块用于启动相应的监听接口;所述消息提醒子模块用于收到消息之后,将消息分解,提取消息内容,并在页面弹出提示框;所述nodejs服务端模块包括连接管理子模块、消息收发子模块、消息存储子模块和服务接口子模块,所述连接管理子模块用于响应Web前端模块中的消息监听子模块,并建立相应心跳检测,建立连接之后将用户连接唯一编码的用户编码相关联,存放至redis数据库中;所述消息收发子模块用于收到消息后,解析消息体,根据接受者连接的唯一编码,将消息体实时推送至目标连接;所述消息存储子模块用于在收到消息并推送的同时,调用异步存储接口,直接将发送记录存储在数据库中;所述服务接口子模块用于提供用户查询信息的服务;所述消息存储服务模块用于消息数据持久化存放。作为优选,所述连接子模块调用socket端口后,经过三次握手协议建立socket长连接。作为优选,所述消息监听子模块启动receiveMsg,在服务端触发sendMsg接口,实时接收到发送的消息。进一步的,所述服务接口子模块包括发送消息接口、历史消息查询接口和在线用户查询接口;所述发送消息接口子模块用于供发送者调用的推送消息接口;所述历史消息查询接口子模块用于查询发送记录;所述在线用户查询接口子模块用于从redis直接查询所有在线用户信息。进一步的,所述用于查询发送的记录包含发送者、接受者、消息内容、发送时间以及消息是否送的。一种基于nodejs的消息提醒方法,以nodejs为基础技术,Wed网页建立socket长连接的方式保持会话,实时接收消息,将用户的消息存放至redis服务中,使nodejs服务端能集成部署,以至发送消息的同时异步保存数据。进一步的,用户登录Wed网页,Wed网页首先建立连接,调用服务端的socket端口,经过三次握手协议之后建立socket长连接;然后进行心跳重连,用户端每个几秒发送一个心跳信息,服务端在收到后作出回复,若没有响应,则进行重连接操作;再启用相应的监听接口来进行消息监听;最后,在接收到消息之后作出消息提醒,将消息体分解,提取消息内容并在页面弹出提示框。作为优选,启用receiveMsg监听,在服务端触发sendMsg接口,实现接收到发送的消息。进一步的,nodejs服务端首先进行连接管理,连接管理是监听建立连接操作,在收到建立连接的操作信息之后,建立连接,并建立相应的心跳检测,失败重连机制,建立连接之后将用户连接唯一编码和用户编码相关联,并存放在redis服务中;收到消息之后,解析消息体,实现消息收发,根据接收者连接的唯一编码,实时推送至目标连接;在收到消息并推送的同时,调用异步存储接口,直接将发送记录存储在消息存储服务中,用于历史数据查询。进一步的,nodejs服务端还有服务接口,主要包括发送消息接口、历史消息查询接口和在线用户查询接口;发送消息接口就是供发送者调用的推送消息接口,用于用户发送消息;历史消息查询接口就是查询发送记录,所述的发送记录包含发送者、接收者、消息内容、发送时间和消息是否送达;在线用户查询接口是从redis服务中直接查询所有在线用户信息,用于用户管理其他的业务功能。本专利技术的一种基于nodejs的消息提醒系统及方法和现有技术相比,具有以下突出的有益效果:(1)本专利技术解决了轮循数据库的问题,使得消息可以实时发送,提升了消息传输的效率。不必在页面设置定时任务,避免了页面的卡顿。无需循环查询数据,缓解了数据库压力。(2)在线用户信息的存放,采用redis存储,支持这个架构的水平扩展,使得后端可以无限延展,支持大批量用户同时在线。(3)异步存取信息,支持消息的持久化,提供方便快捷的查询消息服务。(4)发送消息的接口,支持其他业务系统调用接口直接发送消息提醒,不必建立连接。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图1是一种基于nodejs的消息提醒方法的结构示意图;附图2是一种基于nodejs的消息提醒系统中Web前端模块的示意图;附图3是一种基于nodejs的消息提醒系统中nodejs服务端模块的示意图;附图4是nodejs服务端模块中服务接口子模块中的示意图。具体实施方式为了使本
的人员更好的理解本专利技术的方案,下面结合具体的实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本发本文档来自技高网
...

【技术保护点】
1.一种基于nodejs的消息提醒系统,其特征在于,由Web前端模块、nodejs服务端模块和消息存储服务模块组成,Web前端模块和nodejs服务端模块连接,nodejs服务端模块与消息存储服务模块连接;/n所述Web前端模块包括连接子模块、心跳重连子模块、消息监听子模块和消息提醒子模块,所述连接子模块用于调用服务端暴露的socket端口;所述心跳重连子模块用于服务端收到信息做相应的回复;所述消息监听子模块用于启动相应的监听接口;所述消息提醒子模块用于收到消息之后,将消息分解,提取消息内容,并在页面弹出提示框;/n所述nodejs服务端模块包括连接管理子模块、消息收发子模块、消息存储子模块和服务接口子模块,所述连接管理子模块用于响应Web前端模块中的消息监听子模块,并建立相应心跳检测,建立连接之后将用户连接唯一编码的用户编码相关联,存放至redis数据库中;所述消息收发子模块用于收到消息后,解析消息体,根据接受者连接的唯一编码,将消息体实时推送至目标连接;所述消息存储子模块用于在收到消息并推送的同时,调用异步存储接口,直接将发送记录存储在数据库中;所述服务接口子模块用于提供用户查询信息的服务;/n所述消息存储服务模块用于消息数据持久化存放。/n...

【技术特征摘要】
1.一种基于nodejs的消息提醒系统,其特征在于,由Web前端模块、nodejs服务端模块和消息存储服务模块组成,Web前端模块和nodejs服务端模块连接,nodejs服务端模块与消息存储服务模块连接;
所述Web前端模块包括连接子模块、心跳重连子模块、消息监听子模块和消息提醒子模块,所述连接子模块用于调用服务端暴露的socket端口;所述心跳重连子模块用于服务端收到信息做相应的回复;所述消息监听子模块用于启动相应的监听接口;所述消息提醒子模块用于收到消息之后,将消息分解,提取消息内容,并在页面弹出提示框;
所述nodejs服务端模块包括连接管理子模块、消息收发子模块、消息存储子模块和服务接口子模块,所述连接管理子模块用于响应Web前端模块中的消息监听子模块,并建立相应心跳检测,建立连接之后将用户连接唯一编码的用户编码相关联,存放至redis数据库中;所述消息收发子模块用于收到消息后,解析消息体,根据接受者连接的唯一编码,将消息体实时推送至目标连接;所述消息存储子模块用于在收到消息并推送的同时,调用异步存储接口,直接将发送记录存储在数据库中;所述服务接口子模块用于提供用户查询信息的服务;
所述消息存储服务模块用于消息数据持久化存放。


2.根据权利要求1所述的一种基于nodejs的消息提醒系统,其特征在于,所述连接子模块调用socket端口后,经过三次握手协议建立socket长连接。


3.根据权利要求2所述的一种基于nodejs的消息提醒系统,其特征在于,所述消息监听子模块启动receiveMsg,在服务端触发sendMsg接口,实时接收到发送的消息。


4.根据权利要求3所述的一种基于nodejs的消息提醒系统,其特征在于,所述服务接口子模块包括发送消息接口、历史消息查询接口和在线用户查询接口;
所述发送消息接口子模块用于供发送者调用的推送消息接口;
所述历史消息查询接口子模块用于查询发送记录;
所述在线用户查询接口子模块用于从redis直接查询所有在线用户信息。


5.根据权利要求4所述的一种基于nodejs的消息提醒系统,其特征在于,所述用于查询发送的记录包含发...

【专利技术属性】
技术研发人员:王洁
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东;37

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

1