CN115190347A - 消息处理方法、消息处理装置、电子设备和存储介质 - Google Patents
消息处理方法、消息处理装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115190347A CN115190347A CN202210629314.2A CN202210629314A CN115190347A CN 115190347 A CN115190347 A CN 115190347A CN 202210629314 A CN202210629314 A CN 202210629314A CN 115190347 A CN115190347 A CN 115190347A
- Authority
- CN
- China
- Prior art keywords
- messages
- message
- rendering
- group
- cache
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 51
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000009877 rendering Methods 0.000 claims abstract description 147
- 230000004044 response Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Computer Graphics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种直播中的消息处理方法、消息处理装置、电子设备和存储介质。所述消息处理方法可包括:在进入直播页面后,获取从服务器广播的消息;对获取的消息进行缓存;按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种直播中的消息处理方法、消息处理装置、电子设备、存储介质以及程序产品。
背景技术
随着互联网的发展,直播成为人们生活中越来越广泛的娱乐方式。直播可以分为文字、图片直播和视频直播,其中,视频直播是指利用互联网及流媒体技术进行直播的一种视频观看方式,视频因融合了图像、文字、声音等元素而效果更好,逐渐成为互联网的主流直播方式。
在视频直播的过程中,直播消息是常见并且最高频使用的互动手段,主播端和观看的用户端可以通过直播消息实现主播与观看的用户之间的互动,因此会在用户端的视频画面上的某一块显示区域,用来不断的滚动展示各类直播消息(例如用户评论、主播发言等等)。然而,直播消息因其量大、高频的特性,很容易引发浏览器端的性能问题。
发明内容
本公开提供一种消息处理方法、消息处理装置、电子设备和存储介质,以至少解决上述提及的问题。
根据本公开实施例的第一方面,提供一种直播中的消息处理方法,所述消息处理方法可包括:在进入直播页面后,获取从服务器广播的消息;对获取的消息进行缓存;按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
可选地,对获取的消息进行缓存,可包括:针对获取的每条消息,从缓存组的尾部存储所述消息,其中,所述缓存组具有预设大小;在所述预设时间间隔内,当存储到所述缓存组中的消息使所述缓存组中存储的消息数量达到所述预设大小时,将所述缓存组的首部的消息删除。
可选地,按照预设时间间隔对缓存的消息进行渲染,可包括:按照所述预设时间间隔,从渲染组的尾部存储所述缓存组中的消息,其中,所述渲染组具有与所述缓存组相同的所述预设大小;并且对所述渲染组中的消息进行渲染。
可选地,所述消息处理方法还可包括:响应于接收到用于查看历史消息的请求,从服务器获取预定数量的历史消息;针对每条历史消息,从所述渲染组的首部开始存储所述历史消息;当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的尾部的消息删除,直至将所述预定数量的历史消息存储到所述渲染组为止;对所述渲染组中的消息进行渲染。
可选地,所述消息处理方法还可包括:响应于接收到用于查看最新消息的请求,从所述渲染组的尾部开始存储所述缓存组中的消息;当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的首部的消息删除直至将所述缓存组中的全部消息存储到所述渲染组为止,并且清空所述缓存组;对所述渲染组中的消息进行渲染。
可选地,所述消息处理方法还可包括:在查看历史消息的情况下,响应于用户输入消息,对输入的消息进行缓存;和/或在未查看历史消息的情况下,响应于用户输入消息,直接对输入的消息进行渲染并显示在直播页面中。
根据本公开实施例的第二方面,提供一种直播中的消息处理装置,所述消息处理装置可包括:获取模块,被配置为在进入直播页面后,获取从服务器广播的消息;缓存模块,被配置为对获取的消息进行缓存;渲染模块,被配置为按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
可选地,缓存模块可被配置为:针对获取的每条消息,从缓存组的尾部存储所述消息,其中,所述缓存组具有预设大小;在所述预设时间间隔内,当存储到所述缓存组中的消息使所述缓存组中存储的消息数量达到所述预设大小时,将所述缓存组的首部的消息删除。
可选地,渲染模块可被配置为:按照所述预设时间间隔,从渲染组的尾部存储所述缓存组中的消息,其中,所述渲染组具有与所述缓存组相同的所述预设大小;并且对所述渲染组中的消息进行渲染。
可选地,获取模块可被配置为响应于接收到用于查看历史消息的请求,从服务器获取预定数量的历史消息;渲染模块可被配置为针对每条历史消息,从所述渲染组的首部开始存储所述历史消息;当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的尾部的消息删除,直至将所述预定数量的历史消息存储到所述渲染组为止;对所述渲染组中的消息进行渲染。
可选地,渲染模块可被配置为响应于接收到用于查看最新消息的请求,从所述渲染组的尾部开始存储所述缓存组中的消息;当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的首部的消息删除直至将所述缓存组中的全部消息存储到所述渲染组为止,并且清空所述缓存组;对所述渲染组中的消息进行渲染。
可选地,所述消息处理装置还可包括输入模块,被配置为接收用户输入,其中,在查看历史消息的情况下,响应于用户输入消息,缓存模块可缓存输入的消息;和/或在未查看历史消息的情况下,响应于用户输入消息,渲染模块可直接对输入的消息进行渲染并显示在直播页面中。
根据本公开实施例的第三方面,提供一种电子设备,所述电子设备可包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的消息处理方法。
根据本公开实施例的第四方面,提供一种存储指令的计算机可读存储介质,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的消息处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中的指令被电子装置中的至少一个处理器运行以执行如上所述的消息处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过缓存接收的消息来避免由于频繁地接收消息导致的浏览器频繁渲染;通过引入缓存组和渲染组来限制存储消息的数量,以提高数据操作效率并降低存储压力。通过直接对终端用户输入的消息进行渲染,避免了从服务器端接收广播消息的时延,提高了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是现有的直播中的消息处理的流程图;
图2是根据本公开的实施例的直播中的消息处理方法的流程图;
图3A和图3B是根据本公开的实施例的在缓存数组中存储消息的流程示意图;
图4A和图4B是根据本公开的实施例的在渲染数组中存储消息的流程示意图;
图5是根据本公开的实施例的直播中的消息处理方法的流程示意图;
图6是根据本公开的实施例的消息处理设备的结构示意图;
图7是根据本公开的实施例的直播中的消息处理装置的框图;
图8是根据本公开的实施例的电子设备的框图。
在整个附图中,应注意,相同的参考标号用于表示相同或相似的元件、特征和结构。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本公开的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本公开的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
以下描述和权利要求中使用的术语和词语不限于书面含义,而仅由发明人用来实现本公开的清楚且一致的理解。因此,本领域的技术人员应清楚,本公开的各种实施例的以下描述仅被提供用于说明目的而不用于限制由权利要求及其等同物限定的本公开的目的。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在相关技术中,如图1所示,当进入直播页面后,初始化少量最新聊天记录,与服务器端建立直播长连接,每接收到服务器端广播的消息后,将该消息添加到聊天消息数组(也可被称为消息列表)的最底部(即最新),每次消息列表的变更会引起直播页面上聊天消息区域的重新渲染。然而,高频消息或频繁地将消息添加到聊天消息数组会引起页面重新渲染,导致页面卡顿。此外,当终端的用户自己发送聊天消息时,在收到服务器端广播的自己发送的消息后才能将消息添加到聊天消息数组,然后进行页面渲染。然而,由于用户在终端发送的消息只有在服务器端广播后才能被渲染,然后自己才能看到该消息,存在一定的时延,导致用户体验不佳。另外,在终端用户向前查看历史聊天消息时,将获取历史聊天记录***聊天消息数组的顶部,在渲染后将其展示到聊天区域顶部(即最旧)。然而,由于历史聊天记录和新的聊天消息都会被添加到聊天消息数组中,聊天消息数组的长度无限增加,会占用过多内存,导致存储压力。
当直播聊天频率变高,聊天消息量变大时,会存在以下问题:聊天频率变高时,例如50条/秒,会在1秒内添加消息到聊天列表最底部50次,导致浏览器每隔2毫秒就需要重新渲染展示,导致页面卡顿;当聊天消息量大时,在回看历史消息或者不停接收到新消息时,会导致浏览器内存存储过多消息,占用过多内存;当聊天消息量大时,在回看历史消息或者不停接收到新消息时,每次新的消息渲染会引起其他消息的重新绘制或重新排布,而大量页面节点的重绘和重排耗时巨大,导致页面卡顿、用户体验不佳;对于终端用户自己发送的消息,在收到广播消息后显示,如果存在广播的时延,导致用户体验不佳,而高频聊天或者在线人数多,都会导致时延增高。
通常直播都会是出现高频的聊天消息,聊天消息量也会很大,这种情况下很容易出现浏览器渲染性能问题和用户体验问题,这将会严重影响用户的可访问性。
为解决现有技术存在的问题,本公开将接收消息和渲染消息解耦,通过缓存来解决高频消息引发的浏览器频繁渲染,并且通过在不影响用户体验的情况下,合理降低前端存储消息的数量,来提升数据操作的效率、降低存储压力。此外,对于终端用户自己发送的消息,不需要等待服务器端广播而尽可能早地被展示,避免了展示消息的时延,给用户及时的响应。
在下文中,根据本公开的各种实施例,将参照附图对本公开的方法、装置进行详细描述。
图2是根据本公开的实施例的直播中的消息处理方法的流程图。根据本公开的消息处理方法可应用于直播场景中,尤其是在直播时聊天频率高、消息量大的情况。
根据本公开的消息处理方法可由任意电子设备执行。电子设备可以是智能手机、平板电脑、便携式计算机和台式计算机等中的至少一种。电子设备可安装有目标应用,用于实现本公开的消息处理方法。
参照图2,在步骤S101,在进入直播页面后,获取从服务器广播的消息。当用户使用终端进入直播页面后,终端可与服务器端建立长连接,以从服务器端接收服务器端广播的聊天消息。
在步骤S102,对获取的消息进行缓存。可以以“组”的形式来缓存服务器端所广播的消息。在本公开中,“组”可以表示具有一定大小并且可按序排列信息的数据形式,诸如数组、序列、队列等。
针对每条服务器端广播的消息,可从缓存组的尾部存储消息。缓存组可设置有预设大小,即具有预设长度。
当存储到缓存组中的消息使缓存组中存储的消息数量达到预设大小时,可将缓存组的首部(即头部)的消息删除。例如,假设缓存组被设置为能够存储200条消息并且当前缓存组中已存储有200条消息,当新消息存储到缓存组中时,此时可将该新消息存储在缓存组的最末端作为最新消息,并且将缓存组的最前端的消息删除,这样可保证缓存组中仅存储一定数量的消息,从而降低存储压力。下面将参照图3A和图3B详细描述如何在缓存组中存储消息。
在步骤S103,按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
在进行直播页面时,可设置对缓存组的定时操作,即可按照预设时间间隔将缓存组中的消息存储到渲染组中。预设时间间隔可被设置为0.5秒、1秒等。也就是说,可每个预设时间来渲染一次所缓存的消息。
渲染组可被用于当渲染组中的数据发生变化时即可启动对渲染组中的数据的渲染操作。渲染组可具有与缓存组相同的大小。也可将渲染组的大小与缓存组的大小不同地设置。通过对渲染组设置固定长度,可使不需要展示的消息被抛弃掉。
在普通情况(诸如用户不对直播页面进行任何操作)下,每隔预设时间可在直播页面中更新聊天消息。对于这种情况,终端可在预设时间间隔内接收服务器端所广播的消息并且将其存储在缓存组中,在消息缓存过程中遵循缓存组关于最大数量的限制。在预设时间间隔到期后,可将缓存组中存储的消息存储到渲染组中,使得渲染组变更触发渲染操作。在每次缓存组中的数据存储到渲染组中的过程中,可将缓存组中的数据清空,使得在下一预设时间间隔缓存组中存储的消息是全新的消息。或者,也可按照上面描述的缓存方式逐条缓存新消息(诸如在某个预设时间间隔内所缓存的消息未达到缓存组的上限,在下一预设时间间隔内可继续在先前存储的消息后面缓存新消息)或者更换新消息(诸如在缓存的消息达到缓存组的上限,可将新消息缓存在缓存组的尾部并且将缓存组的头部消息删除,以遵循缓存组关于最大数量的限制)。
在用户查看历史消息的情况下,可从服务器获取预定数量的历史消息。例如,当用户在直播页面中对消息列表进行向上滑动输入时,表示此时用户想查看之前的历史消息,可从服务器获取预定数量的历史消息。
针对每条历史消息,可从渲染组的首部开始存储历史消息。当存储到渲染组中的消息使渲染组中存储的消息数量达到预设大小时,可将渲染组的尾部的消息删除,直至将预定数量的历史消息存储到渲染组为止。例如,可根据渲染组中当前首部消息的ID,从服务器端获取该ID之前的预定数量的消息作为对请求查看历史消息的响应。
在用户查看最新消息的情况下,从渲染组的尾部开始存储缓存组中的消息。例如,当用户在直播页面中对消息列表进行向下滑动输入时,表示用户想查看最新的消息,此时可无需等到预设时间间隔是否到期,可从渲染组的尾部开始存储缓存组中的消息。例如,可将缓存组中的数据逐条地全部存储到渲染组中。当存储到渲染组中的消息使渲染组中存储的消息数量达到预设大小时,可将渲染组的首部的消息删除直至将缓存组中的全部消息存储到渲染组为止,并且清空缓存组中的数据。下面将参照图4A和图4B详细描述在渲染组中存储消息的过程。
根据本公开的另一示例,对于终端用户自己输入的消息,可根据不同情况执行不同的操作。在查看历史消息的情况下,响应于用户输入消息,可对输入的消息进行缓存。在未查看历史消息(诸如查看最新消息)的情况下,响应于用户输入消息,直接对输入的消息进行渲染并显示在直播页面中。使得用户可尽可能早地看到自己输入的消息。
根据本公开的实施例,通过缓存接收的消息来避免由于频繁地接收消息导致的浏览器频繁渲染。通过引入缓存组和渲染组来限制存储消息的数量,以提高数据操作效率并降低存储压力。通过直接对终端用户输入的消息进行渲染,避免了从服务器端接收广播消息的时延,提高了用户体验。
图3A和图3B是根据本公开的实施例的在缓存数组中存储消息的流程示意图。根据本公开的实施例,通过引入缓存数组对服务器端广播的新消息进行节流处理。可将缓存数组设置为固定长度,例如将缓存数组设置为存储200条消息。
参照图3A,在接收到服务器端广播的新消息后,确定加入的消息是否会使缓存数组的长度超出设置的长度。当加入的消息不会导致缓存数组长度超出设置的长度时,可从缓存数组的尾部将新消息推入缓存数组。当加入的消息导致缓存数组长度超出设置的长度时,即缓存数组的数量达到上限(诸如已存满200条消息),可从缓存数组的首部弹出并抛弃首部消息,并且从缓存数组的尾部推入新消息。
可对缓存数组设置定时操作,即可在预设时间间隔将缓存数组中的消息存储到渲染数组中,以进行消息渲染。预设时间间隔可被设置为0.5或1秒,但不限于此。
此外,当检测到用户查看最新消息的请求后,可将缓存数组中的消息存储到渲染数组中。
参照图3B,可在每个预设时间间隔内执行图3A中的消息缓存,当检测到用户查看最新消息的请求时,可将缓存数组中的数据全部加入到渲染数组中,并且清空缓存数组。例如,当用户在直播页面中对消息列表进行向上滑动的操作时,表示用户此时想查看最新的消息,此时可从渲染数组的尾部开始存储缓存数组中的全部消息以进行消息渲染。当未检测到用户查看最新消息的请求时,可执行图3A的消息缓存。
一般地,在用户不对直播页面产生任何操作时,可每隔预设时间渲染一次缓存数组中的全部消息。
根据本公开的实施例,通过将接收消息和渲染消息解耦,避免了由于高频率收到消息而引起浏览器短时间多次渲染而导致浏览器卡顿的问题。
图4A和图4B是根据本公开的实施例的在渲染数组中存储消息的流程示意图。渲染数组的长度可被设置为与缓存数组的长度相同,例如,可将渲染数组设置为存储200条消息,这样可使不需要展示的消息被丢弃。
参照图4A,对于服务器端广播的新消息,在新消息需要加入渲染数组时,确定加入的消息是否会使渲染数组的长度超出设置的长度。当加入的消息不会导致渲染数组长度超出设置的长度时,从渲染数组尾部推入消息。当加入的消息会导致渲染数组长度超出设置的长度时,从渲染数组尾部推入消息,并从头部移除超出数量的消息。
参照图4B,对于从服务器端获取的历史消息,在历史消息需要加入渲染数组时,确定加入的消息是否会使渲染数组的长度超出设置的长度。当加入的消息不会导致渲染数组长度超出设置的长度时,从渲染数组头部推入消息。当加入的消息会导致渲染数组长度超出设置的长度时,从渲染数组头部推入消息,并从尾部移除超出数量的消息。
当有聊天消息加入渲染数组后,浏览器可根据渲染数组的消息,渲染聊天消息的区域,展示聊天消息。
根据本公开的实施例,通过设置渲染数组的长度,可避免渲染数组过长,占用过多内存,影响其他需要内存的操作。
图5是根据本公开的实施例的直播中的消息处理方法的流程示意图。
参照图5,在进入直播页面后,可初始化聊天列表并且初始化缓存数组的定时操作,与服务器端建立长连接以接收服务器端广播的消息。在接收到广播的消息后可将消息存储在缓存数组中,并且当针对缓存数组的定时器到期后,可将缓存数组中的数据存储到渲染数组中,渲染数组的变化可引起直播页面的消息展示区域的渲染。
在定时器到期之前,如果接收到用户查看最新消息的请求,可无需等到定时器到期,即可将缓存数组中的全部消息从渲染数组的尾部开始存储到渲染数组中,以进行消息渲染。
对于终端用户自己输入的消息(即自己发送的消息),可根据不同情况执行不同的操作。具体地,在终端用户自己输入消息时可确定此时用户是否正在查看历史消息,当用户正在查看历史消息时,可将终端用户输入的消息存储到缓存数组中,当用户当前没有查看历史消息(诸如用户当前正在查看最新消息,或者直播页面基于缓存数组的定时操作定时地更新聊天消息)时,可将终端用户输入的消息加入到渲染数组,以直接进行消息渲染,使得用户尽可能早地看到自己输入的消息。
响应于用户请求查看历史消息,可从服务器端获取预设数量的历史消息,然后将获取的历史消息加入到渲染数组,可从渲染数组的首部开始逐条加入历史消息,然后对变更的渲染数组中的消息进行渲染。
图6是本公开实施例的硬件运行环境的消息处理设备的结构示意图。
如图6所示,消息处理设备500可包括:处理组件501、通信总线502、网络接口503、输入输出接口504、存储器505以及电源组件506。其中,通信总线502用于实现这些组件之间的连接通信。输入输出接口504可以包括视频显示器(诸如,液晶显示器)、麦克风和扬声器以及用户交互接口(诸如,键盘、鼠标、触摸输入装置等),可选地,输入输出接口504还可包括标准的有线接口、无线接口。网络接口503可选的可包括标准的有线接口、无线接口(如无线保真接口)。存储器505可以是高速的随机存取存储器,也可以是稳定的非易失性存储器。存储器505可选的还可以是独立于前述处理组件501的存储装置。
本领域技术人员可以理解,图6中示出的结构并不构成对消息处理设备500的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图6所示,作为一种存储介质的存储器505中可包括操作***(诸如MAC操作***)、数据存储模块、网络通信模块、用户接口模块、程序以及数据库。
在图6所示的消息处理设备500中,网络接口503主要用于与外部电子设备/终端进行数据通信;输入输出接口504主要用于与用户进行数据交互;消息处理设备500中的处理组件501、存储器505可被设置在消息处理设备500中,消息处理设备500通过处理组件501调用存储器505中存储的程序以及由操作***提供的各种API,执行本公开实施例提供的消息处理方法。
处理组件501可以包括至少一个处理器,存储器505中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器执行时,执行根据本公开实施例的消息处理方法。然而,上述示例仅是示例性的,本公开不限于此。
处理组件501可通过执行程序来实现对消息处理设备500所包括的组件的控制。
作为示例,消息处理设备500可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,消息处理设备500并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。消息处理设备500还可以是集成控制***或***管理器的一部分,或者可以被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在消息处理设备500中,处理组件501可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理组件501还可以包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理组件501可运行存储在存储器中的指令或代码,其中,存储器505还可以存储数据。指令和数据还可以经由网络接口503而通过网络被发送和接收,其中,网络接口503可以采用任何已知的传输协议。
存储器505可以与处理组件501集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器505可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可以使用的其他存储装置。存储器和处理组件501可以在操作上进行耦合,或者可以例如通过I/O端口、网络连接等互相通信,使得处理组件501能够读取存储在存储器505中的数据。
图7是根据本公开的实施例的消息处理装置的框图。
参照图7,消息处理装置600可包括获取模块601、缓存模块602、渲染模块603和输入模块604。消息处理装置600中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略消息处理装置600中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
在进入直播页面后,获取模块601可获取从服务器广播的消息。
缓存模块602可对获取的消息进行缓存。
渲染模块603可按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
可选地,针对获取的每条消息,缓存模块602可从缓存组的尾部存储消息,其中,缓存组具有预设大小;在预设时间间隔内,当存储到缓存组中的消息使缓存组中存储的消息数量达到预设大小时,将缓存组的首部的消息删除。
可选地,渲染模块603可按照预设时间间隔,从渲染组的尾部存储缓存组中的消息,其中,渲染组具有与缓存组相同的预设大小;并且对渲染组中的消息进行渲染。
可选地,响应于接收到用于查看历史消息的请求,获取模块601可从服务器获取预定数量的历史消息,针对每条历史消息,渲染模块603可从渲染组的首部开始存储历史消息;当存储到渲染组中的消息使渲染组中存储的消息数量达到预设大小时,将渲染组的尾部的消息删除,直至将预定数量的历史消息存储到渲染组为止;对渲染组中的消息进行渲染。
可选地,响应于接收到用于查看最新消息的请求,渲染模块603可从渲染组的尾部开始存储缓存组中的消息;当存储到渲染组中的消息使渲染组中存储的消息数量达到预设大小时,将渲染组的首部的消息删除直至将缓存组中的全部消息存储到渲染组为止,并且清空缓存组;对渲染组中的消息进行渲染。
可选地,输入模块604可接收用户输入。在查看历史消息的情况下,响应于用户输入消息,缓存模块602可缓存输入的消息;在未查看历史消息的情况下,响应于用户输入消息,渲染模块603可直接对输入的消息进行渲染并显示在直播页面中。
上面已根据图2至图4B详细描述了直播消息的处理方式,这里不再进行描述。
根据本公开的实施例,可提供一种电子设备。图8是根据本公开实施例的电子设备的框图,该电子设备800可包括至少一个存储器802和至少一个处理器801,所述至少一个存储器802存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器801执行时,执行根据本公开实施例的消息处理方法。
处理器801可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理器801还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
作为一种存储介质的存储器802可包括操作***、数据存储模块、网络通信模块、用户接口模块、用于执行本公开的消息处理方法的程序以及数据库。
存储器802可与处理器801集成为一体,例如,可将RAM或闪存布置在集成电路微处理器等之内。此外,存储器802可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可使用的其他存储装置。存储器802和处理器801可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器801能够读取存储在存储器802中的文件。
此外,电子设备800还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备800的所有组件可经由总线和/或网络而彼此连接。
本领域技术人员可理解,图8中示出的结构并不构成对的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的消息处理方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成上述消息处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种直播中的消息处理方法,其特征在于,所述消息处理方法包括:
在进入直播页面后,获取从服务器广播的消息;
对获取的消息进行缓存;
按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
2.根据权利要求1所述的消息处理方法,其特征在于,对获取的消息进行缓存,包括:
针对获取的每条消息,从缓存组的尾部存储所述消息,其中,所述缓存组具有预设大小;
在所述预设时间间隔内,当存储到所述缓存组中的消息使所述缓存组中存储的消息数量达到所述预设大小时,将所述缓存组的首部的消息删除。
3.根据权利要求2所述的消息处理方法,其特征在于,按照预设时间间隔对缓存的消息进行渲染,包括:
按照所述预设时间间隔,从渲染组的尾部存储所述缓存组中的消息,其中,所述渲染组具有与所述缓存组相同的所述预设大小;并且
对所述渲染组中的消息进行渲染。
4.根据权利要求3所述的消息处理方法,其特征在于,还包括:
响应于接收到用于查看历史消息的请求,从服务器获取预定数量的历史消息;
针对每条历史消息,从所述渲染组的首部开始存储所述历史消息;
当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的尾部的消息删除,直至将所述预定数量的历史消息存储到所述渲染组为止;
对所述渲染组中的消息进行渲染。
5.根据权利要求3所述的消息处理方法,其特征在于,还包括:
响应于接收到用于查看最新消息的请求,从所述渲染组的尾部开始存储所述缓存组中的消息;
当存储到所述渲染组中的消息使所述渲染组中存储的消息数量达到所述预设大小时,将所述渲染组的首部的消息删除直至将所述缓存组中的全部消息存储到所述渲染组为止,并且清空所述缓存组;
对所述渲染组中的消息进行渲染。
6.根据权利要求1所述的消息处理方法,其特征在于,还包括:
在查看历史消息的情况下,响应于用户输入消息,对输入的消息进行缓存;和/或
在未查看历史消息的情况下,响应于用户输入消息,直接对输入的消息进行渲染并显示在直播页面中。
7.一种直播中的消息处理装置,其特征在于,所述消息处理装置包括:
获取模块,被配置为在进入直播页面后,获取从服务器广播的消息;
缓存模块,被配置为对获取的消息进行缓存;
渲染模块,被配置为按照预设时间间隔对缓存的消息进行渲染并且显示在直播页面中。
8.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到6中的任一项权利要求所述的消息处理方法。
9.一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到6中的任一项权利要求所述的消息处理方法。
10.一种计算机程序产品,所述计算机程序产品中的指令被电子装置中的至少一个处理器运行以执行如权利要求1到6中的任一项权利要求所述的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629314.2A CN115190347B (zh) | 2022-05-31 | 2022-05-31 | 消息处理方法、消息处理装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629314.2A CN115190347B (zh) | 2022-05-31 | 2022-05-31 | 消息处理方法、消息处理装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190347A true CN115190347A (zh) | 2022-10-14 |
CN115190347B CN115190347B (zh) | 2024-01-02 |
Family
ID=83514152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210629314.2A Active CN115190347B (zh) | 2022-05-31 | 2022-05-31 | 消息处理方法、消息处理装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190347B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332782A1 (en) * | 2012-06-07 | 2013-12-12 | International Business Machines Corporation | Background buffering of content updates |
CN106790629A (zh) * | 2017-01-03 | 2017-05-31 | 努比亚技术有限公司 | 数据同步装置及其实现数据同步的方法、客户端访问*** |
CN107302489A (zh) * | 2017-06-02 | 2017-10-27 | 北京潘达互娱科技有限公司 | 消息展示方法及装置 |
CN108965098A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 基于在线直播的消息推送方法、装置、介质和电子设备 |
CN109684575A (zh) * | 2018-10-30 | 2019-04-26 | 平安科技(深圳)有限公司 | 网页数据的处理方法及装置、存储介质、计算机设备 |
WO2019144743A1 (zh) * | 2018-01-25 | 2019-08-01 | 阿里巴巴集团控股有限公司 | 一种信息展示方法和装置 |
CN110971596A (zh) * | 2019-11-25 | 2020-04-07 | 广州虎牙科技有限公司 | 消息监听方法、装置、电子设备和机器可读存储介质 |
CN111414516A (zh) * | 2020-03-17 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种直播间消息处理方法、装置、电子设备及存储介质 |
CN111586437A (zh) * | 2020-04-08 | 2020-08-25 | 天津车之家数据信息技术有限公司 | 一种弹幕消息处理方法、***、计算设备及存储介质 |
WO2021027631A1 (zh) * | 2019-08-09 | 2021-02-18 | 北京字节跳动网络技术有限公司 | 图像特效处理方法、装置、电子设备和计算机可读存储介质 |
CN113301363A (zh) * | 2020-12-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 直播信息处理方法、装置及电子设备 |
CN113347488A (zh) * | 2021-08-04 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 视频渲染方法、装置、设备及存储介质 |
CN113486273A (zh) * | 2021-07-09 | 2021-10-08 | 上海淇馥信息技术有限公司 | 一种前端信息流页面加载方法、装置和电子设备 |
WO2022062896A1 (zh) * | 2020-09-22 | 2022-03-31 | 北京达佳互联信息技术有限公司 | 直播互动方法及装置 |
-
2022
- 2022-05-31 CN CN202210629314.2A patent/CN115190347B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332782A1 (en) * | 2012-06-07 | 2013-12-12 | International Business Machines Corporation | Background buffering of content updates |
CN106790629A (zh) * | 2017-01-03 | 2017-05-31 | 努比亚技术有限公司 | 数据同步装置及其实现数据同步的方法、客户端访问*** |
CN108965098A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 基于在线直播的消息推送方法、装置、介质和电子设备 |
CN107302489A (zh) * | 2017-06-02 | 2017-10-27 | 北京潘达互娱科技有限公司 | 消息展示方法及装置 |
WO2019144743A1 (zh) * | 2018-01-25 | 2019-08-01 | 阿里巴巴集团控股有限公司 | 一种信息展示方法和装置 |
CN109684575A (zh) * | 2018-10-30 | 2019-04-26 | 平安科技(深圳)有限公司 | 网页数据的处理方法及装置、存储介质、计算机设备 |
WO2021027631A1 (zh) * | 2019-08-09 | 2021-02-18 | 北京字节跳动网络技术有限公司 | 图像特效处理方法、装置、电子设备和计算机可读存储介质 |
CN110971596A (zh) * | 2019-11-25 | 2020-04-07 | 广州虎牙科技有限公司 | 消息监听方法、装置、电子设备和机器可读存储介质 |
CN111414516A (zh) * | 2020-03-17 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种直播间消息处理方法、装置、电子设备及存储介质 |
CN111586437A (zh) * | 2020-04-08 | 2020-08-25 | 天津车之家数据信息技术有限公司 | 一种弹幕消息处理方法、***、计算设备及存储介质 |
WO2022062896A1 (zh) * | 2020-09-22 | 2022-03-31 | 北京达佳互联信息技术有限公司 | 直播互动方法及装置 |
CN113301363A (zh) * | 2020-12-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 直播信息处理方法、装置及电子设备 |
CN113486273A (zh) * | 2021-07-09 | 2021-10-08 | 上海淇馥信息技术有限公司 | 一种前端信息流页面加载方法、装置和电子设备 |
CN113347488A (zh) * | 2021-08-04 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 视频渲染方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115190347B (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911385B2 (en) | Method and system for synchronizing instant messages between multiple clients | |
CN108712457B (zh) | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 | |
JP2014523568A (ja) | 効率的な状態調整 | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
WO2018054170A1 (zh) | 浏览器资源预拉取方法、终端及存储介质 | |
WO2020063008A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
CN107423128B (zh) | 信息处理方法及其*** | |
WO2016202215A1 (zh) | 实现动态图片预览的方法和装置、表情包展示方法和装置 | |
CN112714329A (zh) | 直播间的显示控制方法、装置、存储介质与电子设备 | |
CN116132742A (zh) | 视频播放倍速值的确定方法、视频播放方法、装置及设备 | |
CN111966887A (zh) | 动态缓存方法及装置、电子设备、存储介质 | |
EP3200430A1 (en) | Advertisement data processing method and router | |
TW201933880A (zh) | 直播訊息的展示方法、裝置及系統 | |
CN114422462A (zh) | 消息显示方法、消息显示装置、电子设备和存储介质 | |
CN104010223A (zh) | 接管终端***进行视频播放的方法和*** | |
JP6181291B2 (ja) | 読書速度に基づく情報送信 | |
CN113342759B (zh) | 内容共享方法、装置、设备以及存储介质 | |
CN115190347B (zh) | 消息处理方法、消息处理装置、电子设备和存储介质 | |
CN113568548A (zh) | 动画信息处理方法和设备 | |
CN109831673B (zh) | 一种直播间数据处理方法、装置、设备及存储介质 | |
CN116320648A (zh) | 一种弹幕绘制方法、装置及电子设备 | |
CN110798748A (zh) | 一种音视频预加载方法和装置及电子设备 | |
CN109144354B (zh) | 旋转播放器视图层的方法和设备 | |
US10425494B2 (en) | File size generation application with file storage integration | |
WO2017024976A1 (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 |