一种基于Socket技术的实时消息推送方法及系统技术方案

技术编号:17783970 阅读:30 留言:0更新日期:2018-04-22 15:15
本发明专利技术提供一种基于Socket技术的实时消息推送方法及系统,系统包括:数据写入模块、数据安全模块、数据分发模块、数据推送模块、代理转发模块和房间用户管理模块。数据推送模块,用于从对应的缓存队列B中读取到合法评论信息,再判断数据推送模块自身管理的房间中的每个访问用户进入房间的时间是否早于数据推送模块从对应的缓存队列B中读取到合法评论信息的时间,如果早于,所述数据推送模块才将所述合法评论信息推送给该访问用户。具有以下优点:在传统网页上,某个用户发表的评论信息,能够高效快速的呈现到其他当前访问用户,从而能够使网友在传统网页上进行高效的互动交流,增加用户黏度,进而提高站点访问量。

【技术实现步骤摘要】
一种基于Socket技术的实时消息推送方法及系统
本专利技术属于互联网
,具体涉及一种基于Socket技术的实时消息推送方法及系统。
技术介绍
互联网在当下的发展可谓突飞猛进,人们对网络的依赖程度越来越高。现在网站的数量数以亿计,如何能够让网友在网站内停留足够长的时间,即:提高用户黏度,使网友阅读更多的页面,是每个网站站长必须考虑的重要事情。目前,网友在阅读到自己感兴趣的文章时,可能会发表自己的评论,而其他用户如果能够立即查看到该评论内容,进而回复来增加用户之间的互动,就能够很好地让网友停留在本站点内。但是,传统的网页都是运行在HTTP协议之上的,不能够很好地支撑该业务实现。当下视频直播网站比较流行,在该类网站中可以查看到上述场景的应用,即:发消息弹幕。该类网站是基于Flash的ExternalInterface技术实现的。Flash技术在过去的10多年内,发挥了很重要的作用;但是随着Html5技术的推出,Flash技术的缺点就显现了出来。Flash技术不管是在功能上、还是在性能上,或者是开发运维等成本上都不如Html5有优势。因此,开发一个基于Html5技术大背景的实时消息推送迫在眉睫。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种基于Socket技术的实时消息推送方法及系统,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术提供一种基于Socket技术的实时消息推送方法,包括以下步骤:步骤1,实时获取网站当前用户总访问数量,根据所述当前用户总访问数量,调整数据推送模块的数量,假设数据推送模块的配置数量为N个,分别记为:第1数据推送模块、第2数据推送模块…第N数据推送模块;其中,N为自然数;步骤2,每个数据推送模块均配置对应的一个数据分发模块和一个缓存队列B,即:对于任意的第i数据推送模块,均配置第i数据分发模块和第i缓存队列B;其中,i=1、2...N;因此,共配置有N个数据分发模块和N个缓存队列B;步骤3,代理转发模块基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,并使每个当前访问用户与网站服务端建立Socket长连接;步骤4,数据写入模块实时收集用户通过WEB页面上的Form表单提交的评论信息,并将所述评论信息传输给数据安全模块;步骤5,所述数据安全模块对所述评论信息进行安全过滤,如果得到合法评论信息,则将所述合法评论信息写入指定的数据库,并向所述数据写入模块发送写入成功的通知消息;步骤6,所述数据写入模块接收到写入成功的通知消息后,将步骤5得到的合法评论信息写入到缓存队列A中;步骤7,N个数据分发模块轮询读取缓存队列A新写入的合法评论信息,对于每个第i数据分发模块,从所述缓存队列A读取到合法评论信息后,将读取到的合法评论信息写入到对应的第i缓存队列B中;然后,第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息,再判断第i数据推送模块管理的房间中的每个访问用户进入房间的时间是否早于第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息的时间,如果早于,所述第i数据推送模块才将所述合法评论信息推送给该访问用户;否则,所述第i数据推送模块不会将所述合法评论信息推送给该访问用户。优选的,步骤1中,调整数据推送模块的数量,具体为,根据所述当前用户总访问数量,增加或减少数据推送模块的数量,具体包括:步骤1.1,如果需要增加或减少一个数据推送模块,则修改数据推送配置文件中参数,增加或减少一个数据推送端口;步骤1.2,重启网站;步骤1.3,读取所述数据推送配置文件,创建或删除数据推送模块,由此增加或减少数据推送模块。优选的,步骤3中,代理转发模块基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,具体为:步骤3.1,代理转发模块根据用户访问来源,获取访问用户IP信息;步骤3.2,代理转发模块根据hash算法,将访问用户分配到对应的数据推送模块管理的房间中,并使访问用户与网站服务端建立Socket长连接;步骤3.3,如果步骤3.2执行失败,则将访问用户分配到响应时间最短的数据推送模块管理的房间中。优选的,步骤3中,还包括:房间用户管理模块,用于将数据推送模块管理的房间中低活跃度的用户进行移出,进而保证新的访问用户能够快速进入数据推送模块管理的房间中;具体包括:1)房间用户管理模块读取数据推送模块管理的房间的房间配置文件和实时情况;2)房间用户管理模块读取房间承载人数是否高于配置文件中核定承载人数;如果否,不进行处理;如果是,对房间中的用户按照先进先出和最少发言机制,将一定比例的用户进行移出;其中,具体的比例值在房间配置文件中指定。优选的,步骤5中,所述数据安全模块对所述评论信息进行安全过滤,具体为:所述数据安全模块设置安全筛选指标;所述数据安全模块根据所述安全筛选指标对所述评论信息进行数据过滤处理,包括:SQL过滤处理、敏感词过滤处理和广告过滤处理,如果得到合法评论信息,则返回所述合法评论信息;如果没有得到合法评论信息,则所述评论信息低于制定的安全级别,对提交所述评论信息的访问用户进行禁言和锁定处理。优选的,步骤7中,第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息,具体为:第i缓存队列B的数据生存期为T;所述第i数据推送模块读取所述第i缓存队列B的读取缓存间隔时间小于数据生存期T。本专利技术还提供一种基于Socket技术的实时消息推送系统,包括:数据写入模块,用于实时收集用户通过WEB页面上的Form表单提交的评论信息,并将所述评论信息传输给数据安全模块;数据安全模块,用于对所述数据写入模块写入的所述评论信息进行安全过滤,如果得到合法评论信息,则向所述数据写入模块发送写入成功的通知消息;由数据写入模块将合法评论信息写入到缓存队列A中;数据分发模块,为N个,每个数据分发模块轮询读取缓存队列A新写入的合法评论信息,将读取到的合法评论信息写入到对应的缓存队列B中;其中,缓存队列B的数量为N个,一个缓存队列B唯一对应一个数据分发模块;数据推送模块,为N个,一个数据推送模块唯一对应一个缓存队列B,用于从对应的缓存队列B中读取到合法评论信息,再判断数据推送模块自身管理的房间中的每个访问用户进入房间的时间是否早于数据推送模块从对应的缓存队列B中读取到合法评论信息的时间,如果早于,所述数据推送模块才将所述合法评论信息推送给该访问用户;代理转发模块,用于基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,并使每个当前访问用户与网站服务端建立Socket长连接。优选的,还包括:房间用户管理模块,用于将数据推送模块管理的房间中低活跃度的用户进行移出,进而保证新的访问用户能够快速进入数据推送模块管理的房间中。本专利技术提供的一种基于Socket技术的实时消息推送方法及系统具有以下优点:在传统网页上,某个用户发表的评论信息,能够高效快速的呈现到其他当前访问用户,从而能够使网友在传统网页上进行高效的互动交流,增加用户黏度,进而提高站点访问量。附图说明图1为本专利技术提供的一种基于Socket技术的实时消息推送系统的整体架构图;图2为本专利技术提供的数据写入模块的流程图;图3为本专利技术提供的数据安全模块的流程图;图4为本专利技术提供的本文档来自技高网...
一种基于Socket技术的实时消息推送方法及系统

【技术保护点】
一种基于Socket技术的实时消息推送方法,其特征在于,包括以下步骤:步骤1,实时获取网站当前用户总访问数量,根据所述当前用户总访问数量,调整数据推送模块的数量,假设数据推送模块的配置数量为N个,分别记为:第1数据推送模块、第2数据推送模块…第N数据推送模块;其中,N为自然数;步骤2,每个数据推送模块均配置对应的一个数据分发模块和一个缓存队列B,即:对于任意的第i数据推送模块,均配置第i数据分发模块和第i缓存队列B;其中,i=1、2...N;因此,共配置有N个数据分发模块和N个缓存队列B;步骤3,代理转发模块基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,并使每个当前访问用户与网站服务端建立Socket长连接;步骤4,数据写入模块实时收集用户通过WEB页面上的Form表单提交的评论信息,并将所述评论信息传输给数据安全模块;步骤5,所述数据安全模块对所述评论信息进行安全过滤,如果得到合法评论信息,则将所述合法评论信息写入指定的数据库,并向所述数据写入模块发送写入成功的通知消息;步骤6,所述数据写入模块接收到写入成功的通知消息后,将步骤5得到的合法评论信息写入到缓存队列A中;步骤7,N个数据分发模块轮询读取缓存队列A新写入的合法评论信息,对于每个第i数据分发模块,从所述缓存队列A读取到合法评论信息后,将读取到的合法评论信息写入到对应的第i缓存队列B中;然后,第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息,再判断第i数据推送模块管理的房间中的每个访问用户进入房间的时间是否早于第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息的时间,如果早于,所述第i数据推送模块才将所述合法评论信息推送给该访问用户;否则,所述第i数据推送模块不会将所述合法评论信息推送给该访问用户。...

【技术特征摘要】
1.一种基于Socket技术的实时消息推送方法,其特征在于,包括以下步骤:步骤1,实时获取网站当前用户总访问数量,根据所述当前用户总访问数量,调整数据推送模块的数量,假设数据推送模块的配置数量为N个,分别记为:第1数据推送模块、第2数据推送模块…第N数据推送模块;其中,N为自然数;步骤2,每个数据推送模块均配置对应的一个数据分发模块和一个缓存队列B,即:对于任意的第i数据推送模块,均配置第i数据分发模块和第i缓存队列B;其中,i=1、2...N;因此,共配置有N个数据分发模块和N个缓存队列B;步骤3,代理转发模块基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,并使每个当前访问用户与网站服务端建立Socket长连接;步骤4,数据写入模块实时收集用户通过WEB页面上的Form表单提交的评论信息,并将所述评论信息传输给数据安全模块;步骤5,所述数据安全模块对所述评论信息进行安全过滤,如果得到合法评论信息,则将所述合法评论信息写入指定的数据库,并向所述数据写入模块发送写入成功的通知消息;步骤6,所述数据写入模块接收到写入成功的通知消息后,将步骤5得到的合法评论信息写入到缓存队列A中;步骤7,N个数据分发模块轮询读取缓存队列A新写入的合法评论信息,对于每个第i数据分发模块,从所述缓存队列A读取到合法评论信息后,将读取到的合法评论信息写入到对应的第i缓存队列B中;然后,第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息,再判断第i数据推送模块管理的房间中的每个访问用户进入房间的时间是否早于第i数据推送模块从对应的第i缓存队列B中读取到合法评论信息的时间,如果早于,所述第i数据推送模块才将所述合法评论信息推送给该访问用户;否则,所述第i数据推送模块不会将所述合法评论信息推送给该访问用户。2.根据权利要求1所述的一种基于Socket技术的实时消息推送方法,其特征在于,步骤1中,调整数据推送模块的数量,具体为,根据所述当前用户总访问数量,增加或减少数据推送模块的数量,具体包括:步骤1.1,如果需要增加或减少一个数据推送模块,则修改数据推送配置文件中参数,增加或减少一个数据推送端口;步骤1.2,重启网站;步骤1.3,读取所述数据推送配置文件,创建或删除数据推送模块,由此增加或减少数据推送模块。3.根据权利要求1所述的一种基于Socket技术的实时消息推送方法,其特征在于,步骤3中,代理转发模块基于预设定的分配规则,将当前的各个访问用户分配到各个数据推送模块管理的房间中,具体为:步骤3.1,代理转发模块根据用户访问来源,获取访问用户IP信息;步骤3.2,代理转发模块根据hash算法,将访问用户分配到对应的数据推送模块管理的房间中,并使访问用户与网站服务端建立Socket长连接;步骤3.3,如果步骤3.2执行失败,则将访问用户分配到响应时间最短的数据推送模块管理的房间中。4.根据权利要...

【专利技术属性】
技术研发人员:丁玲
申请(专利权)人:北京知行锐景科技有限公司
类型:发明
国别省市:北京,11

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

1