CN112839011B - 缓存分发方法、装置、介质及系统 - Google Patents
缓存分发方法、装置、介质及系统 Download PDFInfo
- Publication number
- CN112839011B CN112839011B CN201911158444.7A CN201911158444A CN112839011B CN 112839011 B CN112839011 B CN 112839011B CN 201911158444 A CN201911158444 A CN 201911158444A CN 112839011 B CN112839011 B CN 112839011B
- Authority
- CN
- China
- Prior art keywords
- access point
- data
- client
- load data
- response
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文是关于一种缓存分发方法、装置、介质及系统,缓存分发方法应用于WebSocket服务器,包括:接收第一接入点单元转发的第一客户端的载荷数据,所述载荷数据包括应用数据;提取所述应用数据,并对所述应用数据进行验证;在所述应用数据通过验证后,发送正常响应数据至所述第一接入点单元,并推送验证通过后的载荷数据至N个第二接入点单元。任一客户端发布数据,源站只需推送一次数据给其他接入点单元,由接入点单元直接分发给接入点内所有客户端,提高数据发布效率。源站不需将需推送的内容推送到每一个客户端,减少源站带宽消耗。
Description
技术领域
本文涉及计算机技术领域,尤其涉及缓存分发方法、装置、介质及系统。
背景技术
相关技术中,在热门视频的弹幕中,使用WebSocket技术,在客户端上显示同房间内其他客户端的弹幕信息。由于成千上万的客户端连接到WebSocket源站,并且有大量的弹幕信息发送到websocekt源站,而源站需要将每个客户端发送的信息,全部推送给每一个在这个房间里的客户端,这样会造成WebSocket源站负载压力大,分发效率低,源站带宽成本消耗大问题。
发明内容
为克服相关技术中存在的问题,本文提供一种缓存分发方法、装置、介质及系统。
根据本文的第一方面,提供一种缓存分发方法,应用于WebSocket服务器,包括:
接收第一接入点单元转发的第一客户端的载荷数据,所述载荷数据包括应用数据;
提取所述应用数据,并对所述应用数据进行验证;
在所述应用数据通过验证后,发送正常响应数据至所述第一接入点单元,并推送验证通过后的载荷数据至N个第二接入点单元,其中N为≥1的整数。
还包括:
接收第一接入点单元转发的第一客户端的连接请求;
发送响应信息至所述第一接入点单元,所述响应信息包括:用户ID,响应时间点T2;
在所述应用数据未通过验证,发送异常响应信息至所述第一接入点单元,以使所述第一接入点单元删除缓存的所述载荷数据。
所述接入点单元包括一个或者多个接入点服务器,或一个或者多个根接入点服务器及多级子接入点服务器。
缓存分发方法,应用于接入点单元,包括:
接收接入点内第一客户端的载荷数据,所述载荷数据包括应用数据及扩展数据,所述扩展数据包括基准时间点T5,用户ID;
根据所述基准时间点T5和所述用户ID,缓存所述客户端的载荷数据;
转发所述客户端的载荷数据至WebSocket服务器;
接收所述WebSocket服务器发送的基于所述应用数据的响应数据;
当所述响应数据正常时,发送缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端,当所述响应数据异常时,清除所述缓存的载荷数据。
还包括:
接收所述接入点内客户端的连接请求;
发送所述连接请求至WebSocket服务器;
接收所述WebSocket服务器的响应信息,所述响应信息包括响应时间点T2,用户ID;
转发所述响应信息至所述客户端。
还包括:
接收所述WebSocket服务器推送的其他接入点的客户端载荷数据;
发送所述其他接入点的客户端载荷数据至接入点内所有客户端。
缓存分发方法,应用于客户端,包括:
向所述接入点单元发送连接请求,记录发送时间点T1;
接收所述接入点单元转发的WebSocket服务器的响应信息,并记录接收时间点T3,所述响应信息包括响应时间点T2及用户ID;
基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4;
发送载荷数据至接入点单元,所述载荷数据包括应用数据和扩展数据,所述扩展数据包括所述基准时间点T5及所述用户ID。
还包括:
接收所述接入点单元转发的接入点内其他客户端的载荷数据,或者接收所述接入点单元转发的其他接入点内客户端的载荷数据,响应所述载荷数据中的应用数据。
根据本文的另一方面,提供一种缓存分发装置,应用于WebSocket服务器,包括:
第一接收模块,用于接收第一接入点单元转发的客户端的载荷数据,所述载荷数据包括应用数据;
验证模块,用于提取所述应用数据,并对所述应用数据进行验证;
第一分发模块,用于在在所述应用数据通过验证后,发送正常响应数据至所述第一接入点单元,并推送验证通过后的载荷数据至N个第二接入点单元,其中N为大于等于1的整数。
还包括:
连接响应模块,用于发送响应信息至所述第一接入点单元,所述响应信息包括:用户ID,响应时间点T2;
所述第一接收模块还用于接收第一接入点单元转发的第一客户端的连接请求;
在所述应用数据未通过验证时,所述第一分发单元还用于发送异常响应信息至所述第一接入点单元,以使所述第一接入点单元内的接入点服务器删除缓存的所获载荷数据。
所述接入点单元包括一个或者多个接入点服务器,或一个或者多个根接入点服务器及多级子接入点服务器。
缓存分发装置,应用于接入点单元,包括:
第二接收模块,用于接收接入点内第一客户端的载荷数据,所述客户端载荷数据包括应用数据及扩展数据,所述扩展数据包括基准时间点T5,用户ID;
缓存模块,用于根据所述基准时间点T5和所述用户ID,缓存所述客户端的载荷数据;
转发模块,用于转发所述客户端的载荷数据至所述WebSocket服务器;
响应接收模块,用于接收所述WebSocket服务器发送的基于所述应用数据的响应数据;
第二分发模块,用于当所述响应数据正常时,发送所述缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端,当所述响应数据异常时,清除所述缓存的载荷数据。
还包括:
所述第二接收模块,还用于接收所述WebSocket服务器的响应信息,所述响应信息包括响应时间点T2,用户ID;还用于接收所述接入点内客户端的连接请求;
所述转发模块,还用于发送所述连接请求至WebSocket服务器,转发所述响应信息至所述客户端。
所述第二接收模块,还用于接收所述WebSocket服务器推送的其他接入点的客户端载荷数据;
所述第二分发模块,还用于发送所述其他接入点的客户端载荷数据至所述接入点内所有客户端。
缓存分发装置,应用于客户端,包括:
发送模块,用于向所述接入点单元发送连接请求,记录发送时间点T1;
第三接收模块,用于接收所述接入点单元转发的WebSocket服务器的响应信息,所述响应信息包括响应时间点T2及用户ID,并记录接收时间点T3;
时间校正模块,用于基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4;
发布模块,用于发送载荷数据至接入点单元,所述载荷数据包括应用数据和扩展数据,所述扩展数据包括所述基准时间点T5及所述用户ID。
还包括:
响应模块,用于接收所述接入点单元转发的接入点内其他客户端的载荷数据,或者接收所述接入点单元转发的其他接入点内客户端的载荷数据,响应所述载荷数据中的应用数据。
根据本文的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上所述缓存分发方法。
根据本文的另一方面,提供一种缓存分发系统,系统包括如上所述的缓存分发装置。
本文通过设置接入点单元,对接入点内客户端的数据进行缓存,任一客户端发布数据,源站只需推送一次数据给其他接入点单元,接入点单元直接分发给接入点内的所有客户端,提高数据发布效率。相比现有方法,源站不需将需推送的内容推送到每一个客户端,减少源站带宽消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的一种缓存分发系统的示意图。
图2是根据一示例性实施例示出的一种缓存分发系统的示意图。
图3是根据一示例性实施例示出的一种缓存分发方法的流程图。
图4是根据一示例性实施例示出的一种缓存分发方法的流程图。
图5是根据一示例性实施例示出的一种缓存分发方法的流程图。
图6是根据一示例性实施例示出的一种缓存分发方法的流程图。
图7是根据一示例性实施例示出的一种缓存分发装置的框图。
图8是根据一示例性实施例示出的一种缓存分发装置的框图。
图9是根据一示例性实施例示出的一种缓存分发装置的框图。
图10是根据一示例性实施例示出的一种缓存分发装置的框图。
图11是根据一示例性实施例示出的一种缓存分发装置的框图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
图1是根据一示例性实施例示出的一种缓存分发系统的示意图。参考图1,本文缓存分发的方法中,为解决WebSocket源站负载压力大,分发效率低,源站带宽成本消耗大的问题,在WebSocket服务器(源站)与客户端之间设置接入点服务器,WebSocket服务器与多个接入点服务器连接,每一接入点服务器连接多个客户端。对于任一客户端发布的消息,源站只需要将客户端发送的信息推送到多个接入点服务器,再由多个接入点服务器进行分发,WebSocket服务器不再向每一个在这个房间里的客户端推送消息,从而减轻WebSocket服务器的压力。
图2是根据一示例性实施例示出的一种缓存分发系统的示意图。参考图2,在客户端数量较多时,需要设置多个接入点服务器,为进一步减轻WebSocket服务器的压力,可以设置多级接入点服务器,并且在多级接入点服务器中,设置一个或者多个根接入点服务器和多级子接入点服务器,由根接入点服务器与WebSocket服务器连接。一个或者多个根接入点服务器和多级子接入点服务器作为一个接入点单元。在图2中,示例性示出了两级接入点服务器,事实上,根据实际使用情况,可以设置多级接入点服务器。
本领域技术人员应该清楚,在本方法中,设置接入点服务器的数量,需要根据实际的客户端数量来确定,图1,图2示例性的示出接入点服务器的数量和每一接入点服务器下的客户端数量,并非对本文的限制。为清楚地理解本文中的缓存分发方法,特别声明,每一个接入点服务器(或者接入点单元)和与其连接的多个客户端处在同一接入点中,例如图1中,接入点服务器P1,客户端C1,客户端C2,客户端C3处在一个接入点中;客户端C3,客户端C4处于不同接入点中。接入点服务器管理接入点内的多个客户端,转发客户端信息至WebSocket服务器,同时接收WebSocket服务器发送的其他接入点客户端的信息,并转发至接入点内的客户端。
图3是根据一示例性实施例示出的一种缓存分发方法的流程图。参考图3,缓存分发方法应用于WebSocket服务器包括:
步骤S31,接收第一接入点单元转发的第一客户端的载荷数据,载荷数据包括应用数据。应用数据是指封装在载荷数据中的客户端发布的内容信息,例如文字信息,图片信息等。
步骤S32,提取应用数据,并对应用数据进行验证。WebSocket服务器在接收到客户端的载荷数据后,需要解封该载荷数据,去掉载荷数据的扩展数据,或者提取载荷数据中的应用数据,并对客户端发布的内容进行校验。例如判断客户端发布的内容是否包含敏感词,内容是否违反法律法规等。校验结果以响应数据的方式向接入点单元发送,本实施例中,校验通过,发送正常响应数据0,校验未通过,发送异常响应数据1。
步骤S33,在应用数据通过验证后,发送正常响应数据至第一接入点单元,并推送验证通过后的载荷数据至N个第二接入点单元,其中N为大于等于1的整数。WebSocket服务器在对应用数据进行验证后,同时判断当前有多少客户端在当前的资源中,如客户端分布在多个接入点中,将第一客户端的载荷数据推送给其他接入点单元,以使其他接入点内的客户端能够接收到该客户端发布的内容。由于第一接入点单元中的接入点服务器中已经缓存了该客户端的载荷数据,WebSocket服务端在通过应用数据的验证后,只向该接入点单元发送响应数据,通知该接入点单元将该缓存数据发布给该接入点内的其他客户端,而不再重复向该接入点单元内的服务器发送该缓存数据,减少带宽消耗。
在应用数据未通过验证,发送异常响应信息至第一接入点单元,以使第一接入点单元删除缓存的载荷数据。
在本实施例中,一个客户端发布数据,源站只需推送一次数据给其他接入点单元,接入点单元内的接入点服务器直接分发给接入点内的所有客户端,提高数据发布效率。源站不需将需推送的内容推送到每一个客户端,减少源站带宽消耗。
在一实施例中,缓存分发方法还包括:
接收第一接入点单元转发的第一客户端的连接请求;
发送响应信息至第一接入点单元,响应信息包括:用户ID,响应时间点T2;
客户端所在的用户在进入房间前,需要向WebSocket服务器申请连接,WebSocket服务器根据客户端的连接请求,为客户端分配用户ID,记录响应时间,响应给该客户端所在接入点单元。例如WebSocket服务端收到客户端请求后,解析请求头信息,根据请求头判断是WebSocket服务,并且发现请求头Sec-WebSocket-Extensions:cache,则响应头增加Ws_timestamp,响应头的内容即服务端当前6字节16进制毫秒级时间戳T2,并生成4字节的用户ID,响应给接入点单元。用户ID是WebSocket服务器分配给客户端的,作为该客户端所在的用户在房间内的身份标识。
图4是根据一示例性实施例示出的一种缓存分发方法的流程图。参考图4,缓存分发方法应用于接入点单元包括:
步骤S41,接收接入点内客户端的连接请求。例如在客户端所在的用户准备进入房间时,需要先与WebSocket服务器建立连接,并获取WebSocket服务器分配的用户ID,并使用该ID作为客户端所在的用户在房间中的身份标识。因此客户端在发布信息之前,需发送连接请求至WebSocket服务器,而连接请求需先发送到接入点单元。
步骤S42,发送连接请求至WebSocket服务器。
步骤S43,接收WebSocket服务器的响应信息,响应信息包括响应时间点T2,用户ID。
步骤S44,转发响应信息至客户端。
在此过程中,接入点单元起到转发的作用,同时和WebSocket服务器建立缓存交互模式,方便后续对客户端发布的信息进行缓存和管理。
图5是根据一示例性实施例示出的一种缓存分发方法的流程图。参考图5,缓存分发方法应用于接入点单元包括:
步骤S51,接收接入点内第一客户端的载荷数据,客户端在得到WebSocket服务器为其分配的用户ID后,就可以用户ID作为身份标识发布信息,客户端的信息需要以载荷数据的形式发布,载荷数据包括应用数据及扩展数据,应用数据为客户端发布的实际内容信息,扩展数据包括基准时间点T5,用户ID。当接入点内的客户端发送内容时,将内容信息封装到固定格式的应用数据,封装应用数据的同时,将与该应用数据相关的基准时间点T5,WebSocket服务器分配给该客户端的用户ID封装到扩展数据中,将封装好的载荷数据发送到接入点单元内的接入点服务器。
步骤S52,根据基准时间点T5和用户ID,缓存客户端的载荷数据。接入点单元内的接入点服务器在收到客户端的载荷数据后,提取载荷数据中的基准时间点T5,用户ID,根据基准时间点T5和用户ID缓存客户端的载荷数据。在本实施例中,缓存名称为T5&ID。当客户端较多时,接入点服务器中会缓存大量的客户端载荷数据,包括相同客户端的不同时间点的数据和不同客户端在任何时间点的数据,使用T5&ID作为缓存名称,即容易区分不同客户的数据,又容易区分相同客户不同时间的数据。
步骤S53,转发第一客户端的载荷数据至WebSocket服务器。接入点单元内的接入点服务器根据缓存时间的先后顺序,将缓存的载荷数据转发至WebSocket服务器。即使某一时刻有大量客户端同时发布信息,也不会造成WebSocket服务器的拥堵。
步骤S54,接收WebSocket服务器发送的基于该应用数据的响应数据。WebSocket服务器在接收到客户端的载荷数据后,提取应用数据中的内容信息,并对内容进行校验,例如判断第一客户端发布的内容是否包含敏感词,内容是否违反法律法规等。校验结果以响应数据的方式向接入点服务器发送,本实施例中,校验通过,发送正常响应数据0,校验未通过,发送异常响应数据1。
步骤S55,当响应数据正常时,发送缓存的载荷数据至接入点内不同于所述第一客户端的其他客户端,当响应数据异常时,清除缓存的载荷数据。如响应数据正常,说明WebSocket服务器已经对客户端发布的内容信息进行了校验。接入点单元内的接入点服务器将校验通过的缓存的载荷数据发送到接入点内除发送该载荷数据的客户端以外的其他客户端。当然,对于其他接入点内的客户端,由其他接入点单元接收WebSocket服务器推送的第一客户端的载荷数据,发送给同一接入点内的客户端,从而使得同房间中除发送该载荷数据的第一客户端以外的所有客户端都能接收到第一客户端发布的信息。
接入点单元还接收WebSocket服务器推送的其他接入点的客户端载荷数据;
发送其他接入点的客户端载荷数据至接入点内所有客户端。
使得同一房间内位于不同接入点的客户端发布的数据,可以显示给同房间的所有其他客户端。
图6是根据一示例性实施例示出的一种缓存分发方法的流程图。参考图6,缓存分发方法应用于客户端包括:
步骤S61,向接入点单元发送连接请求,记录发送时间点T1。例如图1中,客户端通过http/https的方式向接入点服务器P1发起请求,其中携带请求头Sec-WebSocket-Extensions:cache,并记录当前毫秒级时间点T1。
步骤S62,接收接入点单元转发的WebSocket服务器的响应信息,并记录接收时间点T3,响应信息包括响应时间点T2及用户ID。客户端获取了WebSocket服务器为其分配的用户ID,客户端可以使用该ID向WebSocket服务器发送内容。
步骤S63,基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4。客户端发送数据的时间,一般是和客户端的时间有关系,也就是说,如果客户端这边手动调整了时间,那么用客户端时间来确定缓存先后顺序是不准确的,所以在本实施例中,以源站响应时间T2,加上时间点偏移量作为基准时间来保证客户端发送数据的时间和服务器时间一致。
步骤S64,发送载荷数据至接入点单元,载荷数据包括应用数据和扩展数据,扩展数据包括基准时间点T5,用户ID。接入点单元内的接入点服务器可以根据基准时间点T5和用户ID来缓存客户端的载荷数据。
在一实施例中,缓存分发方法应用于客户端还包括:
接收接入点单元转发的接入点内其他客户端的载荷数据,或者接收接入点单元转发的其他接入点内客户端的载荷数据,响应载荷数据中的应用数据。
客户端接收到其他客户端发送的载荷数据后,去掉扩展数据或提取应用数据,显示应用数据的内容。其他客户端可以是接入点内的其他客户端,也可以其他接入点内的客户端。
为更好的理解本文中的缓存分发方法,举例说明:
具体实施例一
客户端C1准备进入某直播间,该直播间位于WebSocket服务器上。在C1进入直播间前,需要向直播间发送连接请求,并记录发送时间点T1。该连接请求需先发送到接入点单元,以图1为例,该接入点单元只有一接入点服务器P1。接入点服务器P1收到该连接请求后,转发连接请求至WebSocket服务器,WebSocket服务器对客户端的连接请求进行响应,根据客户端请求为客户端分配用户ID,将用户ID和发送响应的时间点T2作为响应信息,发送给接入点服务器P1。接入点服务器P1再将响应信息发送给客户端C1。客户端C1收到响应信息后,记录接收该响应信息的时间点T3。
客户端C1收到响应信息中的用户ID后,就可以此用户ID作为身份标识在直播间中发布信息,信息需要以载荷数据的形式发布,载荷数据包括应用数据及扩展数据,应用数据为客户端发布的实际内容信息,扩展数据包括基准时间点T5,用户ID。因此客户端C1在发布数据的同时,还会基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4。客户端C1将内容信息封装在应用数据中,将基准时间点T5,用户ID封装在扩展数据中,以载荷数据的方式发送到接入点服务器P1。接入点服务器P1提取间点T5,用户ID,并将载荷数据缓存在本地,缓存文件名为T5&ID。然后接入点服务器P1将缓存的载荷数据发送到WebSocket服务器;WebSocket服务器提取载荷数据中的应用数据,也就是客户端C1发送的内容信息,对内容信息进行校验,如果校验通过,WebSocket服务器向接入点服务器P1发送正常响应数据0。同时WebSocket服务器将该载荷数据推送到接入点服务器P2。(如果有接入点服务器P3……,还会将该载荷数据推送给接入点服务器P3……。)接入点服务器P2将载荷数据分发到客户端C4,客户端C5,客户端C6。接入点服务器P1在收到响应数据0后,会将本地缓存的客户端C1的载荷数据分发到客户端C2,客户端C3。
通过以上实施例,一个客户端发布数据,源站只需推送一次数据给其他接入点单元,接入点单元直接分发给接入点内的所有客户端,提高数据发布效率。源站不需将需推送的内容推送到每一个客户端,减少源站带宽消耗。当多个客户端在同一时间发布大量信息时,由各个接入点单元内的接入点服务器对客户端数据进行缓存,减轻源站压力,进一步提高分发效率。
图7是根据一示例性实施例示出的一种缓存分发装置的框图。参考图7,缓存分发装置应用于WebSocket服务器包括,第一接收模块701,验证模块702,第一分发模块703。
该第一接收模块701被配置为用于接收第一接入点单元转发的客户端的载荷数据,载荷数据包括应用数据;
该验证模块702被配置为用于提取应用数据,并对应用数据进行验证;
该第一分发模块703被配置为用于在应用数据通过验证后,发送正常响应数据至第一接入点单元,并推送验证通过后的载荷数据至N个第二接入点单元,其中N为大于等于1的整数。
图8是根据一示例性实施例示出的一种缓存分发装置的框图。参考图8,还包括连接响应模块801,
该连接响应模块801被配置为用于发送响应信息至第一接入点单元,响应信息包括:用户ID,响应时间点T2;
第一接收模块还用于接收第一接入点单元转发的第一客户端的连接请求。
在应用数据未通过验证时,第一分发单元还用于发送异常响应信息至第一接入点单元,以使一接入点服务器删除缓存的所获载荷数据。
接入点单元包括一个或者多个接入点服务器,或一个或者多个根接入点服务器及多级子节点服务器。
图9是根据一示例性实施例示出的一种缓存分发装置的框图。参考图9,缓存分发装置应用于接入点单元包括,第二接收模块901,缓存模块902,转发模块903,响应接收模块904,第二分发模块905。
该第二接收模块901被配置为用于接收接入点内第一客户端的载荷数据,客户端载荷数据包括应用数据及扩展数据,扩展数据包括基准时间点T5,用户ID。
该缓存模块902被配置为用于根据基准时间点T5和所述用户ID,缓存客户端的载荷数据。
该转发模块903被配置为用于转发客户端的载荷数据至WebSocket服务器。
该响应接收模块904被配置为用于接收所述WebSocket服务器发送的基于应用数据的响应数据。
该第二分发模块905被配置为用于当响应数据正常时,发送缓存的载荷数据至接入点内不同于第一客户端的其他客户端,当响应数据异常时,清除缓存的载荷数据。
第二接收模块901,还用于接收WebSocket服务器的响应信息,响应信息包括响应时间点T2,用户ID;还用于接收接入点内客户端的连接请求;
转发模块903,还用于发送连接请求至WebSocket服务器,转发响应信息至客户端。
第二接收模块901,还用于接收WebSocket服务器推送的其他接入点的客户端载荷数据。
第二分发模块,还用于发送其他接入点的客户端载荷数据至接入点内所有客户端。
图10是根据一示例性实施例示出的一种缓存分发装置的框图。参考图10,缓存分发装置应用于客户端包括,发送模块1001,第三接收模块1002,时间校正模块1003,发布模块1004。
该发送模块1001被配置为用于向接入点单元发送连接请求,记录发送时间点T1。
该第三接收模块1002被设置为用于接收接入点单元转发的WebSocket服务器的响应信息,响应信息包括响应时间点T2及用户ID,并记录接收时间点T3。
该时间校正模块1003被配置为用于基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4。
该发布模块1004被配置为用于发送载荷数据至接入点单元,载荷数据包括应用数据和扩展数据,扩展数据包括基准时间点T5及所述用户ID。
图11是根据一示例性实施例示出的一种缓存分发装置的框图。参考图11,缓存分发装置应用于客户端还包括,响应模块1101。
该响应模块1101被配置为用于接收接入点单元转发的接入点内其他客户端的载荷数据,或者接收所述接入点单元转发的其他接入点内客户端的载荷数据,响应所述载荷数据中的应用数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (18)
1.一种缓存分发方法,应用于WebSocket服务器,其特征在于,包括:
接收第一接入点单元缓存并转发的第一客户端的载荷数据,所述载荷数据包括应用数据;
提取所述应用数据,并对所述应用数据进行验证;
在所述应用数据通过验证后,发送正常响应数据至所述第一接入点单元,以使所述第一接入点单元发送缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端;
并推送验证通过后的载荷数据至N个第二接入点单元,其中N为≥1的整数。
2.如权利要求1所述缓存分发方法,其特征在于,还包括:
接收第一接入点单元转发的第一客户端的连接请求;
发送响应信息至所述第一接入点单元,所述响应信息包括:用户ID,响应时间点T2。
3.如权利要求1所述的缓存分发方法,其特征在于,在所述应用数据未通过验证,发送异常响应信息至所述第一接入点单元,以使所述第一接入点单元内的接入点服务器删除缓存的所述载荷数据。
4.如权利要求3所述缓存分发方法,其特征在于,所述接入点单元包括一个或者多个接入点服务器,或一个或者多个根接入点服务器及多级子接入点服务器。
5.一种缓存分发方法,应用于接入点单元,其特征在于,包括:
接收接入点内第一客户端的载荷数据,所述载荷数据包括应用数据及扩展数据,所述扩展数据包括基准时间点T5,用户ID;
根据所述基准时间点T5和所述用户ID,缓存所述客户端的载荷数据;
转发所述客户端的载荷数据至WebSocket服务器;
接收所述WebSocket服务器发送的基于所述应用数据的响应数据;
当所述响应数据正常时,发送缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端,当所述响应数据异常时,清除所述缓存的载荷数据。
6.如权利要求5所述缓存分发方法,其特征在于,还包括:
接收所述接入点内客户端的连接请求;
发送所述连接请求至WebSocket服务器;
接收所述WebSocket服务器的响应信息,所述响应信息包括响应时间点T2,用户ID;
转发所述响应信息至所述客户端。
7.如权利要求5所述的缓存分发方法,其特征在于,还包括:
接收所述WebSocket服务器推送的其他接入点的客户端载荷数据;
发送所述其他接入点的客户端载荷数据至接入点内所有客户端。
8.一种缓存分发方法,应用于客户端,其特征在于,包括:
向接入点单元发送连接请求,记录发送时间点T1;
接收所述接入点单元转发的WebSocket服务器的响应信息,并记录接收时间点T3,所述响应信息包括响应时间点T2及用户ID;
基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4;
发送载荷数据至接入点单元,以使所述接入点单元缓存所述载荷数据,并转发至WebSocket服务器;所述载荷数据包括应用数据和扩展数据,所述扩展数据包括所述基准时间点T5及所述用户ID;
接收所述接入点单元转发的接入点内其他客户端的载荷数据,或者接收所述接入点单元转发的其他接入点内客户端的载荷数据,响应所述载荷数据中的应用数据。
9.一种缓存分发装置,应用于WebSocket服务器,其特征在于,包括:
第一接收模块,用于接收第一接入点单元缓存并转发的第一客户端的载荷数据,所述载荷数据包括应用数据;
验证模块,用于提取所述应用数据,并对所述应用数据进行验证;
第一分发模块,用于在在所述应用数据通过验证后,发送正常响应数据至所述第一接入点单元,以使所述第一接入点单元发送缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端;
并推送验证通过后的载荷数据至N个第二接入点单元,其中N为大于等于1的整数。
10.如权利要求9所述的缓存分发装置,其特征在于,还包括:
连接响应模块,用于发送响应信息至所述第一接入点单元,所述响应信息包括:用户ID,响应时间点T2;
所述第一接收模块还用于接收第一接入点单元转发的第一客户端的连接请求。
11.如权利要求9所述的缓存分发装置,其特征在于,在所述应用数据未通过验证时,所述第一分发模块还用于发送异常响应信息至所述第一接入点单元,以使所述第一接入点单元内的接入点服务器删除缓存的所获载荷数据。
12.如权利要求9所述的缓存分发装置,其特征在于,所述接入点单元包括一个或者多个接入点服务器,或一个或者多个根接入点服务器及多级子接入点服务器。
13.一种缓存分发装置,应用于接入点单元,其特征在于,包括:
第二接收模块,用于接收接入点内第一客户端的载荷数据,所述客户端载荷数据包括应用数据及扩展数据,所述扩展数据包括基准时间点T5,用户ID;
缓存模块,用于根据所述基准时间点T5和所述用户ID,缓存所述客户端的载荷数据;
转发模块,用于转发所述客户端的载荷数据至WebSocket服务器;
响应接收模块,用于接收所述WebSocket服务器发送的基于所述应用数据的响应数据;
第二分发模块,用于当所述响应数据正常时,发送所述缓存的载荷数据至所述接入点内不同于所述第一客户端的其他客户端,当所述响应数据异常时,清除所述缓存的载荷数据。
14.如权利要求13所述的缓存分发装置,其特征在于,还包括:
所述第二接收模块,还用于接收所述WebSocket服务器的响应信息,所述响应信息包括响应时间点T2,用户ID;还用于接收所述接入点内客户端的连接请求;
所述转发模块,还用于发送所述连接请求至WebSocket服务器,转发所述响应信息至所述客户端。
15.如权利要求13所述缓存分发装置,其特征在于,
所述第二接收模块,还用于接收所述WebSocket服务器推送的其他接入点的客户端载荷数据;
所述第二分发模块,还用于发送所述其他接入点的客户端载荷数据至所述接入点内所有客户端。
16.一种缓存分发装置,应用于客户端,其特征在于,包括:
发送模块,用于向接入点单元发送连接请求,记录发送时间点T1;
第三接收模块,用于接收所述接入点单元转发的WebSocket服务器的响应信息,所述响应信息包括响应时间点T2及用户ID,并记录接收时间点T3;
时间校正模块,用于基于发送时间点T1,响应时间点T2及接收时间点T3,确定时间点偏移量T4=T3-T1,基准时间点T5=T2+T4;
发布模块,用于发送载荷数据至接入点单元,所述载荷数据包括应用数据和扩展数据,所述扩展数据包括所述基准时间点T5及所述用户ID;
响应模块,用于接收所述接入点单元转发的接入点内其他客户端的载荷数据,或者接收所述接入点单元转发的其他接入点内客户端的载荷数据,响应所述载荷数据中的应用数据。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-8中任意一项所述方法的步骤。
18.一种缓存分发系统,其特征在于,所述系统包括如权利要求9-16中任意一项所述的缓存分发装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158444.7A CN112839011B (zh) | 2019-11-22 | 2019-11-22 | 缓存分发方法、装置、介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158444.7A CN112839011B (zh) | 2019-11-22 | 2019-11-22 | 缓存分发方法、装置、介质及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112839011A CN112839011A (zh) | 2021-05-25 |
CN112839011B true CN112839011B (zh) | 2023-04-28 |
Family
ID=75921785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911158444.7A Active CN112839011B (zh) | 2019-11-22 | 2019-11-22 | 缓存分发方法、装置、介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112839011B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107438201A (zh) * | 2017-07-06 | 2017-12-05 | 北京潘达互娱科技有限公司 | 消息处理系统、方法及装置 |
CN109413502A (zh) * | 2018-09-29 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 多线程弹幕消息分发方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516820A (zh) * | 2015-12-10 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种弹幕交互方法和装置 |
CN105898377A (zh) * | 2015-12-11 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 用户终端、服务器及弹幕加载方法、系统 |
CN106101851B (zh) * | 2016-07-01 | 2019-04-23 | 上海幻电信息科技有限公司 | 一种弹幕服务的整体实现方法及系统 |
CN106792208A (zh) * | 2016-11-24 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 视频偏好信息处理方法、装置及系统 |
CN108521579B (zh) * | 2018-03-06 | 2020-12-11 | 阿里巴巴(中国)有限公司 | 弹幕信息的显示方法及装置 |
CN110401840B (zh) * | 2018-07-26 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 消息推送方法、装置、系统、电子设备及计算机可读介质 |
-
2019
- 2019-11-22 CN CN201911158444.7A patent/CN112839011B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107438201A (zh) * | 2017-07-06 | 2017-12-05 | 北京潘达互娱科技有限公司 | 消息处理系统、方法及装置 |
CN109413502A (zh) * | 2018-09-29 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 多线程弹幕消息分发方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112839011A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395559B (zh) | 基于redis的数据处理方法及设备 | |
CN104025521A (zh) | 内容传输系统、优化该系统中网络流量的方法、中央控制装置和本地缓存装置 | |
CN110708397B (zh) | 用于延迟容忍网络(dtn)中的数据递送的装置和方法 | |
CN103177368A (zh) | 用于电子商务系统的对账方法和系统 | |
US20200274935A1 (en) | A method of referencing a connection session with a wireless communication device in a local area, a system for implementing this method, a method of referencing an application user, a machine-readable medium for implementing this method, as well as a method of collecting data on the wireless communication device user, and a machine-readable medium for implementing this method | |
CN105979277A (zh) | 一种文件传输方法及电子设备 | |
CN112751897A (zh) | 负载均衡方法、装置、介质及设备 | |
CN110650097B (zh) | 一种数据传播方法、装置以及计算机可读存储介质 | |
CN109873855B (zh) | 一种基于区块链网络的资源获取方法和系统 | |
KR101809365B1 (ko) | M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법 | |
CN104852955A (zh) | 一种数据处理方法及系统 | |
CN112839011B (zh) | 缓存分发方法、装置、介质及系统 | |
EP3579526A1 (en) | Resource file feedback method and apparatus | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN110602515B (zh) | 基于区块链的数据处理方法、服务器及存储介质 | |
CN105376226A (zh) | 一种流媒体服务器的转发方法及系统 | |
US9723436B2 (en) | Mobile device location | |
US11659259B1 (en) | Video streaming systems and methods | |
CN107181929A (zh) | 用于视频监控的方法和装置 | |
CN113301100A (zh) | 基于内容分发网络的数据容灾方法、装置、设备及介质 | |
CN111200562A (zh) | 导流方法、静态父节点、边缘节点以及cdn网络 | |
CN105959362A (zh) | Cdn服务器及其缓存数据的方法 | |
KR101744533B1 (ko) | N 스크린 기반 재해 및 리스크 정보 확산 시스템 | |
CN117061324B (zh) | 一种业务数据处理方法以及分布式系统 | |
CN110809178B (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 |