一种消息推送方法及装置与流程

文档序号:11234407
一种消息推送方法及装置与流程
本发明涉及即时通信
技术领域
,特别是涉及一种消息推送方法及装置。
背景技术
:随着互联网的高速发展,即时通信已成为人们生活中不可或缺的交流手段,在平时的休闲娱乐及工作中都得到了广泛的应用。聊天室作为一种新兴的即时通信方式,备受人们青睐。在聊天室里,人们可以畅所欲言。但是,由于聊天室里的用户很多且大都是陌生人,当参与到聊天室聊天的用户比较多或者用户发言较为活跃时,难免会有一些质量较差的信息。如果短时间内发送了大量的质量较差的信息,将导致其他用户发送的有用信息被淹没在这些质量较差的信息里。并且,质量较差的信息会引起其他用户的反感,使得用户体验差,降低用户参与聊天室聊天的积极性。技术实现要素:本发明实施例的目的在于提供一种消息推送方法及装置,以实现提高用户体验,提高用户参与聊天室聊天的积极性。具体技术方案如下:第一方面,本发明实施例提供了一种消息推送方法,所述方法包括:接收聊天室用户发送的聊天消息;对聊天消息进行检测,得到聊天消息的质量等级;根据聊天消息的质量等级,将聊天消息存储在对应的优先级队列中;按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。可选的,所述对聊天消息进行检测,得到聊天消息的质量等级,包括:根据聊天消息与聊天室主题的相关性、聊天消息出现的频率、聊天室用户的等级,确定聊天消息的质量等级。可选的,所述根据聊天消息的质量等级,将聊天消息存储在对应的优先级队列中,包括:根据聊天消息的质量等级,以及预设的质量等级与优先级之间的对应关系,确定聊天消息的优先级;根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部。可选的,各优先级队列预先配置有其对应的最大长度;在根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部之后,本发明实施例的消息推送方法还包括:针对任一优先级队列,当该优先级队列的长度达到对应的最大长度时,根据先进先出的原则,取出该优先级队列中尾部/头部的聊天消息,并丢弃。可选的,所述按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户,包括:依次确定当前存储有消息的优先级队列;按照优先级从高到低的顺序,从所确定的优先级队列中最高优先级的优先级队列的尾部/头部取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。可选的,所述将待推送的聊天消息推送给聊天室的各用户,包括:按照预设推送速率将待推送的聊天消息推送给聊天室的各用户。第二方面,本发明实施例还提供了一种消息推送装置,所述装置包括:接收模块,用于接收聊天室用户发送的聊天消息;检测模块,用于对聊天消息进行检测,得到聊天消息的质量等级;存储模块,用于根据聊天消息的质量等级,将聊天消息存储在对应的优先级队列中;推送模块,用于按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。可选的,检测模块,具体用于根据聊天消息与聊天室主题的相关性、聊天消息出现的频率、聊天室用户的等级,确定聊天消息的质量等级。可选的,存储模块,包括:第一确定子模块,用于根据聊天消息的质量等级,以及预设的质量等级与优先级之间的对应关系,确定聊天消息的优先级;存储子模块,用于根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部。可选的,各优先级队列预先配置有其对应的最大长度;本发明实施例的消息推送装置还包括:舍弃模块,用于针对任一优先级队列,当该优先级队列的长度达到对应的最大长度时,根据先进先出的原则,取出该优先级队列中尾部/头部的聊天消息,并丢弃。可选的,推送模块,包括:第二确定子模块,用于依次确定当前存储有消息的优先级队列;推送子模块,用于按照优先级从高到低的顺序,从所确定的优先级队列中最高优先级的优先级队列的尾部/头部取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。可选的,推送模块,具体用于按照预设推送速率将待推送的聊天消息推送给聊天室的各用户。本发明实施例提供的一种消息推送方法及装置,可以实现首先给用户推送质量较高的聊天消息,将低质量的聊天消息延后推送或丢弃,提高用户体验,提高用户参与聊天室聊天的积极性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例的一种消息推送方法的流程图;图2为本发明实施例的一种消息推送装置的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术中存在的问题,本发明实施例提供了一种消息推送方法及装置,以实现提高用户体验,提高用户参与聊天室聊天的积极性。下面,首先对本发明实施例的一种消息推送方法进行介绍,如图1所示,为本发明实施例的一种消息推送方法的流程图,该方法可以包括:S101,接收聊天室用户发送的聊天消息。聊天室,即网络聊天室,是在一个网站或一款软件中,供多个用户通过文字或/和语音进行实时交谈、聊天的网络场所,是一个面向整个因特网开放的场所。通常包括聊天室服务器和客户端,其中,客户端可以是WEB网页,也可以是安装在终端的应用程序。该聊天室服务器可以为台式计算机、便携式计算机等,还可以是布置在服务器机房的大型专业服务器。本发明实施例提供的方法,可以应用于聊天室服务器。通常情况下,聊天室用户在使用聊天室时,首先可以通过聊天室服务器进行注册,得到与该用户对应的用户名。然后,该用户利用该用户名在聊天室聊天,聊天室服务器可以接收该用户发送的聊天消息。可以记录该用户的在线时长,为该用户设置相应的等级。应当理解的是,参与到聊天室的聊天室用户为至少一个。因此,聊天室服务器可以同时接收至少一个聊天室用户发送的聊天消息。S102,对聊天消息进行检测,得到聊天消息的质量等级。为了实现本发明实施例的目的,即首先给用户推送质量较高的聊天消息,将低质量的聊天消息延后推送或丢弃。可以在聊天室服务器中预先设置不同优先级的存储队列,用于存储对应的不同质量等级的聊天消息。为了能够将聊天消息存储到对应的优先级队列中,首先可以对聊天消息进行质量等级划分。因此,聊天室服务器接收到聊天消息后,首先对聊天消息进行检测,得到该聊天消息的评分,然后根据预设质量等级表对该聊天消息进行质量等级划分。其中,预设质量等级表可以如表1所示:表1预设质量等级表聊天消息评分质量等级聊天消息评分质量等级1~10151~60611~20261~70721~30371~80831~40481~90941~50591~10010其中,1级为最低的质量等级,表示该等级的聊天消息质量最差;10级为最高的质量等级,表示该等级的聊天消息质量最高。需要说明的是,表1所示的预设质量等级表仅仅是为了对本发明实施例进行更清楚的说明,并不能用于限定本发明实施例。应当理解的是,在实际应用中,还可以对预设质量等级表中的质量等级进行其他划分,例如,可以将聊天消息的等级划分为3个等级或10个等级。例如,聊天室服务器分别接收到聊天室用户A、聊天室用户B、聊天室用户C发送的聊天消息,并分别对各聊天消息检测后,得到聊天室用户A发送的聊天消息的评分为65分、聊天室用户B发送的聊天消息的评分为82分、聊天室用户C发送的聊天消息的评分为96分,然后根据表1所示的预设质量登记表分别进行质量等级划分,得到聊天室用户A发送的聊天消息的质量等级为7级、聊天室用户B发送的聊天消息的质量等级为9级、聊天室用户C发送的聊天消息的质量等级为10级。具体地,可以在聊天室服务器中预先设置关键词库,该关键词库中的各个关键词具有对应的质量等级。聊天室服务器在接收到聊天室用户发送的聊天消息后,通过预先设置的关键词库对聊天消息进行分析,得到该聊天消息包含的至少一个关键词及对应的质量等级。然后将各个关键词对应的质量等级进行相应的计算,如求平均值等,可以得到该聊天消息的质量等级。例如,关键词库中可以保存有地理名称、质量等级为5级。例如,全国范围内的省、市、县(区)镇。还可以保存有:真、善、美等词语或汉字,质量等级为最高等级10级。还可以保存有:丑陋、假、等词语或汉字,质量等级为最低等级1级。聊天室服务器接收到聊天室用户A发送的一条信息为“海南岛真的很美”。通过关键词库对该聊天消息进行分析后,得到关键词:海南、真、美,对应的质量等级分别为5级、10级、10级。然后对三个关键词对应的质量等级求平均值并向上取整,得到该聊天消息对应的质量等级为9级。S103,根据聊天消息的质量等级,将聊天消息存储在对应的优先级队列中。为了对不同等级的聊天消息进行分别存储,在这里设置了存储队列,该存储队列具有不同的优先级属性,并且质量等级与优先级具有一一对应关系。例如,该对应关系可以是如表2所示的质量等级与优先级对应关系表(一),在该表中,优先级从高到低的顺序分别为:10、9、8、7、6、5、4、3、2、1;还可以是如表3所示的质量等级与优先级对应关系表(二),在该表中,优先级从高到低的顺序分别为:1、2、3、4、5、6、7、8、9、10。其中,该表仅仅用于更清楚的说明质量等级与优先级之间的关系。表2质量等级与优先级对应关系表(一)质量等级优先级质量等级优先级1166227733884499551010表3质量等级与优先级对应关系表(二)质量等级优先级质量等级优先级1106529743883479256101通过步骤S102得到聊天消息的质量等级后,可以根据质量等级与优先级的对应关系,将该聊天消息存储在对应的存储队列中。例如,根据表2所示的质量等级与优先级对应关系表(一),聊天室用户A发送的聊天消息的质量等级为7级、聊天室用户B发送的聊天消息的质量等级为9级、聊天室用户C发送的消息的质量等级为10级,则可以将用户A发送的聊天消息存储至优先级等级为7级的存储队列中,将用户B发送的聊天消息存储至优先级等级为9级的存储队列中,将用户C发送的聊天消息存储至优先级等级为10级的存储队列中。S104,按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。在存储队列中存储有聊天消息时,聊天室服务器可以按照优先级从高到低的顺序,依次从存储队列中取出待推送的聊天消息,推送给聊天室的各用户。其中,上述的待推送的聊天消息至少为1条。例如,聊天室服务器在按照表2所示的质量等级与优先级对应关系表(一)对聊天消息进行存储时,可以首先在优先级等级为10的存储队列中取出聊天消息并推送给各用户,在该优先级队列中存储的聊天消息为空时,再从优先级等级为9的存储队列中取出聊天消息推送给各用户。重复上述动作,直至所有优先级队列中存储的聊天消息都为空。本发明实施例提供的一种消息推送方法,可以实现首先给用户推送质量较高的聊天消息,将低质量的聊天消息延后推送或丢弃,提高用户体验,提高用户参与聊天室聊天的积极性,节省网络资源。在聊天室中,还存在一种规定主题的聊天室,即每个聊天室都具有特定的主题。在通过上述实施例对聊天消息进行检测时,得到的聊天消息的评分不一定能够准确反映出该聊天室的聊天主题。因此,在本发明实施例中,为了使聊天消息的评分与聊天室的主题对应,在对聊天消息进行检测时,还可以通过下述方法得到聊天消息的质量等级,该方法具体可以包括:第一步,根据聊天消息与聊天室主题的相关性,确定该聊天消息的相关性评分。聊天室用户在聊天室发送消息时,每个聊天室都有相应的主题,当该用户发送的聊天消息与该聊天室主题越接近、则相关性越高,因此,相关性评分也越高。具体地,可以通过相关性计算方法得到该聊天消息与该聊天室主题的相关性得分。其中,相关性计算方法为现有技术,此处不再赘述。例如,可以在聊天室服务器中预先设置不同相关性对应的相关性评分,假设,相关性为0的聊天消息的相关性评分为0,相关性为1的聊天消息的相关性评分为100分,相关性为0.55的聊天消息的相关性评分为55分。假设,聊天室服务器接收到聊天室用户A发送的聊天消息W,对该聊天消息W进行相关性计算后,得到该聊天消息W的相关性为0.9,则该聊天消息W的相关性评分为90分。第二步,根据聊天消息出现的频率,确定该聊天消息的频率评分。在聊天室服务器中,可以预先设置不同频率的聊天消息对应的评分,聊天室服务器在得到聊天消息后,与预先设置的不同频率的聊天消息对应的评分进行对比,得到该聊天消息的频率评分。例如,每分钟出现100次的聊天消息的频率评分为1分,每分钟出现50次的聊天消息的频率评分为50分,每分钟出现1次的聊天消息的频率评分为100分。假设聊天室用户A发送的聊天消息W为每分钟出现10次,则聊天消息W对应的评分为90分。第三步,根据聊天室用户的等级,确定该聊天消息的等级评分。在聊天室服务器中,可以预先设置不同等级的聊天室用户对应的评分,聊天室服务器在得到聊天消息后,首先根据该聊天消息,获取该聊天室用户的等级信息,再根据该聊天室用户的等级得到对应的等级评分。假设,在聊天室服务器中,设置1~100共100个等级,每个等级对应一分,例如,等级100的聊天室用户的聊天消息的等级评分为100,等级50的聊天室用户的聊天消息的等级评分为50分。聊天室服务器接收到聊天室用户A发送的聊天消息W后,根据该聊天消息W查询得到聊天室用户A的等级为60级,则该聊天消息W的等级评分为60分。第四步,对相关性评分、频率评分及等级评分进行加权计算,确定聊天消息的质量等级。假设,在本发明实施例中,相关性评分的权重为0.4,频率评分的权重为0.3,等级评分的权重为0.3。在通过上述三个步骤得到聊天用户A发送的聊天消息W后,对该聊天消息W进行加权计算,可以得到该聊天消息W的综合评分X,再根据表1所示的预设质量等级表得到聊天消息W的质量等级。具体地,聊天消息W的综合评分X=90*0.4+90*0.3+60*0.3=81分,则聊天消息W的综合评分为81分,对应的质量等级为9级。通过上述步骤,得到的聊天消息的质量等级能够充分反映出聊天消息与聊天室主题的相关性,以及发送该聊天消息的聊天室用户在该聊天室中的等级。在通过第一种实施方式对聊天消息进行存储时,存储到对应的优先级队列中的各聊天消息容易存在无序存储的问题。为了使存储较早的聊天消息较早的推送给聊天室的各用户,本发明实施例针对上述问题还提供了一种存储方法,该方法可以包括:第一步,根据聊天消息的质量等级,以及预设的质量等级与优先级之间的对应关系,确定聊天消息的优先级。第二步,根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部。具体地,聊天室服务器中预先设置有质量等级与优先级的对应关系,可以是通过映射关系表的形式单独存储,聊天室服务器通过查询映射关系表获取与质量等级相应的优先级等级;也可以是在建立存储队列时,为存储队列预先设置质量等级和对应的优先级等级,聊天室服务器可以通过聊天消息的质量等级将该聊天消息存储到对应优先级的存储队列中。通过上述方法对聊天消息进行存储,可以使得较早存储的聊天消息能够较早的推送给聊天室的各用户,防止聊天消息推送延迟过长的问题。在实际应用中,由于存储聊天消息的硬件设备具有硬件存储空间限制,因此,必须对各个优先级等级的存储队列的长度进行限定。具体地,可以在聊天室服务器中预先配置各个优先级等级对应的最大长度,各个优先级等级对应的最大长度可以相同,也可以不同,是根据实际应用进行设置的。需要说明的是,该最大长度可以是对聊天消息的数量进行限定的长度,即聊天消息的最大数量;也可以是对存储队列中的聊天消息占用的字符数进行限定的长度,即该存储队列能容纳的字符数的最大数量。由于存储队列具有有限的最大长度,在通过上述实施方式对聊天消息存储时,为了保证待存储的聊天消息能够存储到对应的存储队列中,本发明实施例还提供了一种消息推送的方法,在根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部之后,该方法还可以包括:针对任一优先级队列,当该优先级队列的长度达到对应的最大长度时,根据先进先出的原则,取出该优先级队列中尾部/头部的聊天消息,并丢弃。例如,在聊天室服务器将聊天消息从优先级队列的头部存储聊天消息到该优先级队列时,当该优先级队列的长度达到对应的最大长度后,则从该优先级队列的尾部取出聊天消息并丢弃;在聊天室服务器将聊天消息从优先级队列的尾部存储聊天消息到该优先级队列时,当该优先级队列的长度达到对应的最大长度后,则从该优先级队列的头部取出聊天消息并丢弃。通过上述步骤,能够保证每个优先级队列中的聊天消息都是最新的聊天消息。具体地,为了保证高优先级队列中存储的聊天消息能够优先推送,在按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户时,聊天室服务器可以通过下述步骤推送聊天消息:首先,聊天室服务器依次确定当前存储有消息的优先级队列。具体地,聊天室服务器可以通过发送查询消息给各个优先级队列,以确定当前存储有消息的优先级队列,还可以在存储聊天消息时,记录各个优先级队列存储的聊天消息的长度,以确定存储有消息的优先级队列。其次,按照优先级从高到低的顺序,从所确定的优先级队列中最高优先级的优先级队列的尾部/头部取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。例如,在表2所示的质量等级与优先级对应关系表(一)中,优先级从高到低的顺序分别为:10、9、8、7、6、5、4、3、2、1。假设,优先级等级为10的优先级队列中存储的消息为10条,优先级等级为8的优先级队列中存储的聊天消息为20条,优先级等级为5的优先级队列中存储的聊天消息为7条,其他优先级等级对应的优先级队列中存储的聊天消息为0条。聊天室服务器在通过上述步骤推送消息时,首先从优先级等级为10的优先级队列中依次取出待推送的聊天消息,并推送给聊天室的各用户。在该等级对应的优先级队列中存储的聊天消息为0时,再从优先级等级为8的优先级队列中依次取出待推送的聊天消息,推送给聊天室的各用户。最后,从优先级等级为5的优先级队列中依次取出待推送的聊天消息,推送给聊天室的各用户。为了保证聊天消息能够及时推送给聊天室的各用户,并且保证各用户能够看清楚聊天室服务器推送的各聊天消息,在将待推送的聊天消息推送给聊天室的各用户时,可以按照预设推送速率将待推送的聊天消息推送给聊天室的各用户。需要说明的是,上述的预设推送速率是根据实际应用设置的速率,本发明实施例对推送速率不作限定。相应于上述方法实施例,本发明实施例提供了一种消息推送装置,如图2所示,为本发明实施例的一种消息推送装置的结构图,该装置可以包括:接收模块201,用于接收聊天室用户发送的聊天消息;检测模块202,用于对聊天消息进行检测,得到聊天消息的质量等级;存储模块203,用于根据聊天消息的质量等级,将聊天消息存储在对应的优先级队列中;推送模块204,用于按照优先级从高到低的顺序,依次从优先级队列中取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。本发明实施例提供的一种消息推送装置,可以实现首先给用户推送质量较高的聊天消息,将低质量的聊天消息延后推送或丢弃,提高用户体验,提高用户参与聊天室聊天的积极性,节省网络资源。具体地,检测模块202,具体用于根据聊天消息与聊天室主题的相关性、聊天消息出现的频率、聊天室用户的等级,确定聊天消息的质量等级。具体地,存储模块203,包括:第一确定子模块,用于根据聊天消息的质量等级,以及预设的质量等级与优先级之间的对应关系,确定聊天消息的优先级。存储子模块,用于根据聊天消息的优先级,将聊天消息存储在对应的优先级队列的头部/尾部。具体地,各优先级队列预先配置有其对应的最大长度;本发明实施例的消息推送装置还包括:舍弃模块,用于针对任一优先级队列,当该优先级队列的长度达到对应的最大长度时,根据先进先出的原则,取出该优先级队列中尾部/头部的聊天消息,并丢弃。具体地,推送模块204,包括:第二确定子模块,用于依次确定当前存储有消息的优先级队列。推送子模块,用于按照优先级从高到低的顺序,从所确定的优先级队列中最高优先级的优先级队列的尾部/头部取出待推送的聊天消息,并将待推送的聊天消息推送给聊天室的各用户。具体地,推送模块204,具体用于按照预设推送速率将待推送的聊天消息推送给聊天室的各用户。应当理解的是,本发明实施例的一种消息推送装置还可以包括中央处理器,用于接收上述各模块发送的指令,并对该指令进行相应处理;或者,对上述各模块发送相应的控制指令,使各模块进行相应的处理。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1