CN108989404A - 一种弹幕消息下发方法、服务器、系统和存储介质 - Google Patents
一种弹幕消息下发方法、服务器、系统和存储介质 Download PDFInfo
- Publication number
- CN108989404A CN108989404A CN201810711975.3A CN201810711975A CN108989404A CN 108989404 A CN108989404 A CN 108989404A CN 201810711975 A CN201810711975 A CN 201810711975A CN 108989404 A CN108989404 A CN 108989404A
- Authority
- CN
- China
- Prior art keywords
- client
- target
- server
- bullet screen
- screen message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012360 testing method Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 101150035983 str1 gene Proteins 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种弹幕消息下发方法、服务器、系统和存储介质。该方法包括:服务器接收网页端发送的弹幕消息请求,其中弹幕消息请求包括目标弹幕消息和目标客户端信息;服务器根据目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中客户端集合中的各客户端预先与服务器建立套接字长连接;若当前状态为连接状态,则服务器根据目标客户端对应的目标套接字对象,将目标弹幕消息下发至目标客户端。本发明实施例的技术方案,可以实现弹幕消息的主动触发,并且可以对任意弹幕消息进行快速下发,大大提高了测试速度和开发效率。
Description
技术领域
本发明实施例涉及软件开发技术,尤其涉及一种弹幕消息下发方法、服务器、系统和存储介质。
背景技术
随着智能终端的快速发展,各种应用软件被开发应用于智能终端中。一些应用软件比如直播软件、视频播放软件中往往具有弹幕功能,即可以在显示界面中显示弹幕消息。在开发这些应用软件的过程中,需要对弹幕消息进行相关测试,以确定弹幕功能是否正常运行。
目前,基于android操作系统的应用软件开发中,服务器往往是通过常规的业务逻辑来下发弹幕消息至客户端。比如,若测试的弹幕消息为某用户中奖的消息,则客户端需要向服务器持续发送多个弹幕请求,在服务器接收的弹幕请求数量达到预先设置的阈值时,服务器才会向客户端下发某用户中奖的弹幕消息,以便测试客户端接收到该弹幕消息后是否可以弹出中奖页面。可见,现有的应用软件开发中只能通过客户端向服务器发送多次弹幕请求的方式来被动触发弹幕消息的下发操作,然而无法实现弹幕消息的主动触发,从而降低了测试速度和开发效率。
发明内容
本发明实施例提供了一种弹幕消息下发方法、服务器、系统和存储介质,以实现弹幕消息的主动触发,从而可以对任意弹幕消息进行快速下发,大大提高了测试速度和开发效率。
第一方面,本发明实施例提供了一种弹幕消息下发方法,包括:
服务器接收网页端发送的弹幕消息请求,其中所述弹幕消息请求包括目标弹幕消息和目标客户端信息;
所述服务器根据所述目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中所述客户端集合中的各客户端预先与所述服务器建立套接字长连接;
若所述当前状态为连接状态,则所述服务器根据所述目标客户端对应的目标套接字对象,将所述目标弹幕消息下发至所述目标客户端。
第二方面,本发明实施例还提供了一种服务器,包括:
弹幕消息请求接收模块,用于接收网页端发送的弹幕消息请求,其中所述弹幕消息请求包括目标弹幕消息和目标客户端信息;
当前状态确定模块,用于根据所述目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中所述客户端集合中的各客户端预先与所述服务器建立套接字长连接;
目标弹幕消息下发模块,用于若所述当前状态为连接状态,则根据所述目标客户端对应的目标套接字对象,将所述目标弹幕消息下发至所述目标客户端。
第三方面,本发明实施例还提供了一种弹幕消息下发系统,所述系统包括网页端、服务器和客户端;其中,
所述服务器用于实现如本发明任意实施例所述的弹幕消息下发方法;
所述网页端与所述服务器建立连接,用于根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向所述服务器发送所述弹幕消息请求;
所述客户端与所述服务器建立套接字长连接,用于根据所述服务器下发的目标弹幕消息进行测试。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的弹幕消息下发方法。
本发明实施例通过预先将各客户端与服务器建立套接字长连接,服务器接收网页端发送的弹幕消息请求,其中弹幕消息请求包括目标弹幕消息和目标客户端信息;服务器根据目标客户端信息以及客户端集合,确定目标客户端的当前状态;若当前状态为连接状态,则服务器根据目标客户端对应的目标套接字对象,将目标弹幕消息下发至目标客户端。本发明实施例可以通过网页端将任意待测试的弹幕消息和指定的客户端信息发送至服务器,以使服务器可以将目标弹幕消息主动下发至指定的目标客户端,从而无需客户端向服务器进行弹幕请求,实现了弹幕消息的主动触发,从而大大提高了测试速度和开发效率。
附图说明
图1是本发明实施例一提供的一种弹幕消息下发方法的流程图;
图2是本发明实施例二提供的一种服务器的结构示意图;
图3是本发明实施例三提供的一种弹幕消息下发系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种弹幕消息下发方法的流程图,本实施例可适用于将网页端发送的目标弹幕消息下发至目标客户端的情况,尤其是可以用于基于android操作系统开发的直播软件中下发弹幕消息的场景,同时也可以用于其他需要下发弹幕消息的应用场景中。该方法可以由弹幕下发系统中的服务器来执行,具体包括以下步骤:
S110、服务器接收网页端发送的弹幕消息请求,其中弹幕消息请求包括目标弹幕消息和目标客户端信息。
其中,网页端可以是指通过网页页面向服务器发送弹幕消息请求的前端。目标弹幕消息是指服务器向客户端下发的弹幕消息,以于客户端上进行弹幕消息的测试。本实施例中的目标弹幕消息可以是任意的弹幕消息,用户可以根据实际情况和需求进行自主设置,从而可以实现对任意弹幕消息进行下发。示例性的,目标弹幕消息可以是用户A中了一等奖的消息。目标客户端是指服务器将目标弹幕消息下发到的客户端。示例性的,目标客户端可以是但不限于智能手机、平板电脑等智能设备。本实施例中目标客户端的操作系统可以为android系统,目标客户端中预先安装有待测试的应用软件。目标客户端可以是任意的客户端,用户可以根据需求和实际情况进行指定,以便服务器可以将特定的目标弹幕消息下发至指定的目标客户端中,大大提高测试效率。目标客户端信息可以包括但不限于目标客户端的IP(Internet Protocol,网络协议)地址信息和端口号信息。服务器可以根据目标客户端的IP地址信息确定向哪个客户端发送目标弹幕消息,以及根据目标客户端的端口号信息确定与目标客户端的哪个端口进行通信处理。
可选的,在S110之前,还包括:
网页端根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向服务器发送弹幕消息请求。
其中,通常,服务器不具有页面,使得服务器无法主动生成待下发的目标弹幕消息,从而需要利用网页端主动生成目标弹幕消息,并向服务器发送目标弹幕消息。本实施可以通过网页端主动触发服务器将目标弹幕消息下发至目标客户端,解决了因客户端被动触发导致的下发效率低的问题,从而无需等待客户端多次发送的弹幕请求,即可以在未接收到目标客户端发送的弹幕请求时,便向目标客户端发送目标弹幕消息,从而大大提升了弹幕消息的下发效率,进而提高测试速度和开发效率。
可选的,网页端根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向服务器发送弹幕消息请求,包括:
于网页端上创建一个网页页面,并于网页页面中构建输入框和提交按钮;网页端获取用户于输入框中输入的目标客户端信息和目标弹幕消息,并根据目标客户端信息和目标弹幕消息,生成弹幕消息请求;当检测到提交按钮对应的提交指令时,网页端向服务器发送弹幕消息请求。
其中,在网页端上创建一个HTML(HyperText Markup Language,超文本标记语言)的网页页面,并在该网页页面上可以通过<input>关键字来构建输入框。本实施例中用户可以通过输入框主动输入目标客户端信息和目标弹幕消息,从而可以将任意的弹幕消息下发至指定的客户端上。输入框可以是一个或者多个,输入框的数量可以根据实际需求进行设置。本实施例中可以构建一个提交按钮,用于将用户在输入框中输入的内容提交至服务器中。示例性的,可以在构建的HTML页面上通过<input type="submit"method="post">方法来编写一个POST的提交按钮,以使网页端可以通过POST请求方法向服务器发送弹幕消息请求。本实施例中提交按钮对应的提交指令可以在用户点击提交按钮时生成的发送指令。在检测到生成的发送指令时,将弹幕消息请求发送至服务器,以使服务器接收到网页端发送的目标客户端信息和目标弹幕消息。
可选的,于网页页面中构建输入框,包括:
于网页页面中构建IP地址输入框、端口号输入框以及弹幕内容输入框,其中,IP地址输入框用于输入目标客户端的IP地址信息,端口号输入框用于输入目标客户端的端口号信息,弹幕内容输入框用于输入待下发的目标弹幕消息。
其中,本实施例可以通过<input>关键字来构建三个输入框,并且每个输入框具有一个唯一标识ID号。示例性的,IP地址输入框的ID号为“client_ip”,表示需要输入目标客户端的IP地址,即向哪个客户端发送目标弹幕消息;端口号输入框的ID号为“client_port”,表示需要输入目标客户端的端口号,即需要与目标客户端的哪个端口进行通信处理;弹幕内容输入框的ID号为“client_msg”,表示需要输入待下发的目标弹幕消息的具体内容。本实施例可以通过分别获取IP地址输入框中的IP地址信息、端口号输入框中的端口号信息以及弹幕内容输入框中的目标弹幕消息,来生成弹幕消息请求。
S120、服务器根据目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中客户端集合中的各客户端预先与服务器建立套接字长连接。
其中,服务器可以通过接收函数来读取网页端发送的目标客户端信息和目标弹幕消息,即读取弹幕消息请求中的数据内容。服务器端中存在一个客户端集合listClients,用于维护当前与服务器处于连接状态的客户端,并且客户端集合中的每个客户端均与服务器预先建立了套接字长连接,从而服务器可以与客户端集合中的每个客户端均进行通信。客户端集合中的客户端数量可以实时变化的。示例性的,若有新的客户端与服务器建立套接字长连接,则将该新的客户端添加至客户端集合中;若客户端集合中的某客户端与服务器断开,则将客户端集合中的该客户端进行删除。本实施例中在服务器接收到弹幕消息请求前,将所有客户端与服务器之间建立套接字socket长连接,从而可以保持每个客户端与服务器之间的持续连接,保证服务器对客户端可以进行实时管控和通信,以便服务器可以通过socket长连接主动将接收的目标弹幕消息下发至目标客户端。
可选的,S120,包括:
服务器将目标客户端信息与客户端集合中的各客户端信息进行匹配;若匹配成功,则确定目标客户端的当前状态为连接状态,否则确定目标客户端的当前状态为断开状态。
其中,本实施例可以将目标客户端信息与客户端集合listClients中的每个客户端信息进行逐一匹配,以确定目标客户端是否在客户端集合中,从而确定目标客户端是否处于连接状态。可选的,可以通过调用listClients中的listClients.cintains(“client_ip”)方法,根据目标客户端的IP地址信息来判断目标客户端是否存在于客户端集合中。若返回值为ture,则表示匹配成功,此时可以确定目标客户端的当前状态为连接状态,即目标客户端处于在线状态;若返回值为false,则表示匹配失败,此时可以确定目标客户端的当前状态为断开状态,即目标客户端处于离线状态。
可选的,客户端集合中的各客户端预先与服务器建立套接字长连接,包括:
建立各客户端与服务器之间的套接字连接;各客户端每隔预设时间,向服务器发送一个空数据包,以保持各客户端与服务器之间的持续连接。
其中,本实施例需要在每个客户端以及服务器中均建立一个套接字对象以及收发函数对象,从而建立所有客户端与服务器之间的套接字连接。对于每个客户端而言,首先通过调用客户端套接字Socket的构造函数来创建一个客户端Socket对象。示例性的,可以通过调用Socket client=new Socket("127.0.0.1",10080)来创建一个客户端Socket对象,其中127.0.0.1是客户端的IP地址,10080是客户端的端口号,该端口号需要与服务器端的端口号一致,否则无法进行通信处理,client为构建好的客户端Socket对象。然后,可以通过构建一个PrintStream类的输出out对象来实现客户端向服务器发送消息。示例性的,可以通过调用PrintStream out=new PrintStream(client.getOutputStream())方法构建一个PrintStream类的out对象,其中,通过调用client.getOutputStream()函数来获取一个输出流对象,再将该输出流对象传递到PrintStream的构造函数中,从而创建一个PrintStream类的out对象,使得客户端可以通过out对象向服务器发送消息。最后,可以通过构建一个BufferReader类的缓存buf对象来实现客户端接收服务器发送的消息。示例性的,可以通过调用BufferedReader buf=new BufferedReader(new InputStreamReader(client.getInputStream()))函数来接收服务器发送的sokcet消息,其中,通过调用client.getInputStream()函数获取输入流对象,然后将该输入流对象构建成一个InputStreamReader对象,再对其二次包装成一个BufferedReader类的buf对象,使得客户端可以通过buf对象来接收服务器发送的消息数据。在本实施例中,客户端可以通过调用out对象中的out.println(str)方法来向服务器发送一个字符串信息str。可选的,可以设置客户端Socket对象的超时时间,以于到达超时时间时,若还未与服务器进行通信,则断开客户端的套接字连接。示例性的,可以通过调用client.setSoTimeout(10000)的方式来设置超时时间,其中设置的超时时间是10秒。
对于服务器而言,首先通过调用服务器套接字ServerSocket的构造函数来构建一个ServerSocket对象。示例性的,可以通过调用ServerSocket server=new ServerSocket(10800)函数来创建一个ServerSocket对象,其中10800为服务器ServerSocket的端口号。然后可以通过调用server.accept()函数来等待客户端socket对象的连接请求操作,其中server.accept()函数可以返回一个Socket类型的client对象。接着可以构建一个PrintStream类的服务器输出outServer对象来实现服务器向客户端发送消息。示例性的,可以通过调用PrintStream outServer=new PrintStream(client.getOutputStream())方法来构建一个outServer对象,以使得服务器可以通过该outServer对象向客户端发送消息。最后可以通过构建一个BufferReader类的服务器缓存bufServer对象来实现服务器接收客户端发送的消息。示例性的,通过调用BufferedReader bufServer=newBufferedReader(new InputStreamReader(client.getInputStream()))函数来接收客户端发送的消息,其中,将客户端的输入流信息client.getInputStream()先封装成一个InputStreamReader类的对象,然后该对象通过BufferedReader的构造函数进一步包装成一个BufferedReader类的bufServer对象。本实施例可以通过while(ture)方式来对bufServer对象中的数据进行轮询读取。示例性的,可以通过调用String str=bufServer.readLine(),将读取到的信息存储到字符串信息str中,从而完成了服务端接收客户端的数据信息的过程。本实施例可以通过调用outServer对象中的outServer.print(str1)方法来向客户端发送一个字符串信息str1。可选的,本实施例可以通过调用Thread的start()函数来开启一个新的线程,使得所有客户端与服务端的数据均在该线程中进行处理。
本实施例中建立的客户端与服务器之间的套接字连接为一个短连接,不能保持客户端与服务器之间的持续连接,也就是说,若在预设时间段内未与服务器进行交互,或者每次交互结束后,则服务器便会视为该套接字连接为一个废弃的连接,从而会主动回收掉并关闭该套接字连接。本实施例可以通过在客户端与服务器之间创建心跳机制,以维持该套接字连接,具体的是,可以在客户端上设置一个定时器,定时向服务器发送一个空数据包来保持客户端与服务器之间的持续连接,以使下次数据传输时不需要重新建立连接。示例性的,定时器的预设时间可以设置为3秒,从而当定时器超过3秒时,客户端可以通过调用out.print(””)方法向服务器发送一个空字符串数据。需要注意的是,客户端中定时器设置的预设时间要小于客户端的超时时间。在客户端向服务器定时发送一个空数据包后,服务器的bufServer对象便会接收到客户端发送的一个空数据的请求,并可以将一个空的响应包发送至客户端上,使得服务器认为已经与客户端发生了一次通信,从而服务器永远不会视为该套接字连接为一个废弃的连接,保证了客户端与服务器之间的持续连接,使得服务器可以随时下发目标弹幕消息至目标客户端中。
S130、若当前状态为连接状态,则服务器根据目标客户端对应的目标套接字对象,将目标弹幕消息下发至目标客户端。
其中,在目标客户端的当前状态为连接状态时,服务器才可以主动向目标客户端进行推送和下发弹幕消息,即进行弹幕消息的透传。若目标客户端的当前状态为连接状态,则服务器可以根据目标客户端的IP地址信息查询目标客户端对应的目标客户端套接字对象。示例性的,服务器可以通过调用getSocketByIp(client_ip)确定目标客户端对应的目标客户端socket对象。根据服务器对应的服务器socket对象和目标客户端对应的目标客户端socket对象,将接收到的目标弹幕消息下发至目标客户端中。示例性的,可以通过调用服务器socket对象中的outServer对象中的outServer.print(client_msg)方法向目标客户端发送目标弹幕消息client_msg,通过调用目标客户端socket对象中的String str=buf.readLine(),读取服务器发送的目标弹幕消息并存储到字符串信息str中,从而完成了弹幕消息的手动网络下发的过程。本实施例在目标客户端处于在线状态时,服务器及时将接收到的目标弹幕消息主动下发至目标客户端中,无需等待目标客户端向服务器发送请求,从而大大提高了下发速度,并且提升了应用软件的开发效率。
可选的,在目标客户端接收到目标弹幕消息后,还包括:
目标客户端对目标弹幕消息进行解析,并根据解析出的目标弹幕消息内容进行测试。
其中,目标客户端接收到目标弹幕消息后,可以按照现有的测试处理逻辑对目标弹幕消息进行测试,即先对目标弹幕消息进行解析,根据解析出的目标弹幕消息内容进行测试。示例性的,在对解析出的目标弹幕消息内容进行测试时,可以根据是否在目标客户端的显示界面上弹出用户中奖页面来判断弹幕功能是否正常。本实施例中的测试流程与现有技术中通过客户端被动触发获取的弹幕消息的测试流程一致,从而通过本实施例网络模拟下发的弹幕消息的测试可以更加接近真实情况,使得测试的准确度更高,更能反映出真实的测试效果,进而在保证测试准确度的情况下大大提高了下发速度以及应用软件的开发效率。
本实施例的技术方案,通过预先将各客户端与服务器建立套接字长连接,服务器接收网页端发送的弹幕消息请求,其中弹幕消息请求包括目标弹幕消息和目标客户端信息;服务器根据目标客户端信息以及客户端集合,确定目标客户端的当前状态;若当前状态为连接状态,则服务器根据目标客户端对应的目标套接字对象,将目标弹幕消息下发至目标客户端。本发明实施例可以通过网页端将任意待测试的弹幕消息和指定的客户端信息发送至服务器,以使服务器可以将目标弹幕消息主动下发至指定的目标客户端,从而无需客户端向服务器进行弹幕请求,实现了弹幕消息的主动触发,从而大大提高了测试速度和开发效率。
实施例二
图2为本发明实施例二提供的一种服务器的结构示意图,本实施例可适用于将网页端发送的目标弹幕消息下发至目标客户端的情况,该服务器包括:弹幕消息请求接收模块210、当前状态确定模块220和目标弹幕消息下发模块230。
其中,弹幕消息请求接收模块210,用于接收网页端发送的弹幕消息请求,其中弹幕消息请求包括目标弹幕消息和目标客户端信息;当前状态确定模块220,用于根据目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中客户端集合中的各客户端预先与服务器建立套接字长连接;目标弹幕消息下发模块230,用于若当前状态为连接状态,则根据目标客户端对应的目标套接字对象,将目标弹幕消息下发至目标客户端。
可选的,网页端用于:在服务器接收网页端发送的弹幕消息请求之前,根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向服务器发送弹幕消息请求。
可选的,网页端具体用于:于网页端上创建一个网页页面,并于网页页面中构建输入框和提交按钮;获取用户于输入框中输入的目标客户端信息和目标弹幕消息,并根据目标客户端信息和目标弹幕消息,生成弹幕消息请求;当检测到提交按钮对应的提交指令时,向服务器发送弹幕消息请求。
可选的,于网页页面中构建输入框,包括:
于网页页面中构建IP地址输入框、端口号输入框以及弹幕内容输入框,其中,IP地址输入框用于输入目标客户端的IP地址信息,端口号输入框用于输入目标客户端的端口号信息,弹幕内容输入框用于输入待下发的目标弹幕消息。
可选的,当前状态确定模块220,具体用于:
将目标客户端信息与客户端集合中的各客户端信息进行匹配;若匹配成功,则确定目标客户端的当前状态为连接状态,否则确定目标客户端的当前状态为断开状态。
可选的,还包括:
套接字长连接建立模块,用于建立各客户端与服务器之间的套接字连接;各客户端每隔预设时间,向服务器发送一个空数据包,以保持各客户端与服务器之间的持续连接。
可选的,目标客户端用于:
在接收到目标弹幕消息后,对目标弹幕消息进行解析,并根据解析出的目标弹幕消息内容进行测试。
上述服务器可执行本发明任意实施例所提供的弹幕消息下发方法,具备执行弹幕消息下发方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种弹幕消息下发系统的结构示意图,如图3所示,该系统包括:网页端310、服务器320和客户端330。
其中,服务器320用于实现如本发明任意实施例的弹幕消息下发方法;网页端310与服务器320建立连接,用于根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向服务器320发送弹幕消息请求;各客户端330与服务器320建立套接字长连接,用于根据服务器320下发的目标弹幕消息进行测试。
本实施例中的弹幕消息下发系统的工作过程如下:
本实施例中的客户端330数量可以为一个也可以为多个,目标客户端为其中的一个指定的客户端。在对弹幕消息进行开发测试之前,需要建立每个客户端330与服务器320之间的套接字长连接,以保持服务器320和客户端330之间的持续连接,以及将网页端310与所述服务器320建立连接,使得网页端310可以与所述服务器320进行通信。当开发人员需要测试某一弹幕功能时,开发人员在网页端310上输入该弹幕功能对应的目标弹幕消息内容信息以及弹幕消息需要下发到的目标客户端信息。当开发人员输入完毕后,可以通过点击提交按钮,网页端310便将输入的内容信息以弹幕消息请求的方式发送至服务器320中。服务器320接收到包括目标弹幕消息和目标客户端信息的弹幕消息请求后,根据目标客户端信息和客户端集合,确定目标客户端的当前状态,在当前状态为在线状态时,根据目标客户端的IP地址信息确定目标客户端套接字对象,并根据目标客户端套接字对象和服务器套接字对象,将目标弹幕消息主动下发至目标客户端中,从而完成了通过网络模拟,将弹幕消息手动网络下发的整个过程。
可选的,网页端310具体用于:于网页端310上创建一个网页页面,并于网页页面中构建输入框和提交按钮;获取用户于输入框中输入的目标客户端信息和目标弹幕消息,并根据目标客户端信息和目标弹幕消息,生成弹幕消息请求;当检测到提交按钮对应的提交指令时,向服务器发送弹幕消息请求。
可选的,目标客户端用于:在接收到目标弹幕消息后,对目标弹幕消息进行解析,并根据解析出的目标弹幕消息内容进行测试。
其中,目标客户端接收到目标弹幕消息后,可以按照现有的测试处理逻辑对目标弹幕消息进行测试,即先对目标弹幕消息进行解析,根据解析出的目标弹幕消息内容进行测试。本实施例中的测试流程与现有技术中通过客户端被动触发获取的弹幕消息的测试流程一致,从而通过本实施例网络模拟下发的弹幕消息的测试更加接近真实情况,使得测试的准确度更高,更能反映出真实的测试效果,进而在保证测试准确度的情况下大大提高了下发速度以及应用软件的开发效率。
本实施例中的弹幕消息下发系统,通过网页端生成弹幕消息请求,并将弹幕消息请求发送至服务器,服务器根据目标客户端信息将目标弹幕消息主动下发至目标客户端中,从而可以对任意弹幕消息进行快速下发,解决了现有技术中通过客户端被动触发弹幕消息导致的下发效率低的问题,实现了弹幕消息的主动推送和触发,大大提高了系统的性能以及弹幕消息下发速度,进而提升了开发效率。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的弹幕消息下发方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种弹幕消息下发方法,其特征在于,包括:
服务器接收网页端发送的弹幕消息请求,其中所述弹幕消息请求包括目标弹幕消息和目标客户端信息;
所述服务器根据所述目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中所述客户端集合中的各客户端预先与所述服务器建立套接字长连接;
若所述当前状态为连接状态,则所述服务器根据所述目标客户端对应的目标套接字对象,将所述目标弹幕消息下发至所述目标客户端。
2.根据权利要求1所述的方法,其特征在于,在服务器接收网页端发送的弹幕消息请求之前,还包括:
所述网页端根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向所述服务器发送所述弹幕消息请求。
3.根据权利要求2所述的方法,其特征在于,所述网页端根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向所述服务器发送所述弹幕消息请求,包括:
于网页端上创建一个网页页面,并于所述网页页面中构建输入框和提交按钮;
所述网页端获取用户于所述输入框中输入的目标客户端信息和目标弹幕消息,并根据所述目标客户端信息和所述目标弹幕消息,生成弹幕消息请求;
当检测到所述提交按钮对应的提交指令时,所述网页端向所述服务器发送所述弹幕消息请求。
4.根据权利要求3所述的方法,其特征在于,于所述网页页面中构建输入框,包括:
于所述网页页面中构建IP地址输入框、端口号输入框以及弹幕内容输入框,其中,所述IP地址输入框用于输入所述目标客户端的IP地址信息,所述端口号输入框用于输入所述目标客户端的端口号信息,所述弹幕内容输入框用于输入待下发的目标弹幕消息。
5.根据权利要求1所述的方法,其特征在于,所述服务器根据所述目标客户端信息以及客户端集合,确定目标客户端的当前状态,包括:
所述服务器将所述目标客户端信息与客户端集合中的各客户端信息进行匹配;
若匹配成功,则确定目标客户端的当前状态为连接状态,否则确定目标客户端的当前状态为断开状态。
6.根据权利要求1所述的方法,其特征在于,所述客户端集合中的各客户端预先与所述服务器建立套接字长连接,包括:
建立各客户端与所述服务器之间的套接字连接;
各所述客户端每隔预设时间,向所述服务器发送一个空数据包,以保持各所述客户端与所述服务器之间的持续连接。
7.根据权利要求1所述的方法,其特征在于,在所述目标客户端接收到所述目标弹幕消息后,还包括:
所述目标客户端对所述目标弹幕消息进行解析,并根据解析出的目标弹幕消息内容进行测试。
8.一种服务器,其特征在于,包括:
弹幕消息请求接收模块,用于接收网页端发送的弹幕消息请求,其中所述弹幕消息请求包括目标弹幕消息和目标客户端信息;
当前状态确定模块,用于根据所述目标客户端信息以及客户端集合,确定目标客户端的当前状态,其中所述客户端集合中的各客户端预先与所述服务器建立套接字长连接;
目标弹幕消息下发模块,用于若所述当前状态为连接状态,则根据所述目标客户端对应的目标套接字对象,将所述目标弹幕消息下发至所述目标客户端。
9.一种弹幕消息下发系统,其特征在于,所述系统包括网页端、服务器和客户端;其中,
所述服务器用于实现如权利要求1-7中任一所述的弹幕消息下发方法;
所述网页端与所述服务器建立连接,用于根据目标客户端信息和目标弹幕消息生成弹幕消息请求,并向所述服务器发送所述弹幕消息请求;
所述客户端与所述服务器建立套接字长连接,用于根据所述服务器下发的目标弹幕消息进行测试。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的弹幕消息下发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810711975.3A CN108989404B (zh) | 2018-06-29 | 2018-06-29 | 一种弹幕消息下发方法、服务器、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810711975.3A CN108989404B (zh) | 2018-06-29 | 2018-06-29 | 一种弹幕消息下发方法、服务器、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989404A true CN108989404A (zh) | 2018-12-11 |
CN108989404B CN108989404B (zh) | 2022-03-25 |
Family
ID=64539830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810711975.3A Active CN108989404B (zh) | 2018-06-29 | 2018-06-29 | 一种弹幕消息下发方法、服务器、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989404B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535751A (zh) * | 2019-08-19 | 2019-12-03 | 深圳追一科技有限公司 | 一种消息响应方法、装置、计算机设备和存储介质 |
CN111581560A (zh) * | 2020-04-29 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、电子设备及存储介质 |
CN115103005A (zh) * | 2022-06-14 | 2022-09-23 | 北京京东乾石科技有限公司 | 请求响应方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118325A (zh) * | 2010-11-30 | 2011-07-06 | 北京迅捷英翔网络科技有限公司 | 一种配置聊天客户终端的方法及装置、聊天客户终端 |
CN105072496A (zh) * | 2015-07-25 | 2015-11-18 | 北京金山安全软件有限公司 | 一种视频评论显示方法、相关设备及系统 |
CN105681917A (zh) * | 2015-11-05 | 2016-06-15 | 上海幻电信息科技有限公司 | 一种基于现场识别技术的弹幕系统 |
-
2018
- 2018-06-29 CN CN201810711975.3A patent/CN108989404B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118325A (zh) * | 2010-11-30 | 2011-07-06 | 北京迅捷英翔网络科技有限公司 | 一种配置聊天客户终端的方法及装置、聊天客户终端 |
CN105072496A (zh) * | 2015-07-25 | 2015-11-18 | 北京金山安全软件有限公司 | 一种视频评论显示方法、相关设备及系统 |
CN105681917A (zh) * | 2015-11-05 | 2016-06-15 | 上海幻电信息科技有限公司 | 一种基于现场识别技术的弹幕系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535751A (zh) * | 2019-08-19 | 2019-12-03 | 深圳追一科技有限公司 | 一种消息响应方法、装置、计算机设备和存储介质 |
CN110535751B (zh) * | 2019-08-19 | 2023-01-24 | 深圳追一科技有限公司 | 一种消息响应方法、装置、计算机设备和存储介质 |
CN111581560A (zh) * | 2020-04-29 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、电子设备及存储介质 |
CN111581560B (zh) * | 2020-04-29 | 2023-09-19 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、电子设备及存储介质 |
CN115103005A (zh) * | 2022-06-14 | 2022-09-23 | 北京京东乾石科技有限公司 | 请求响应方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108989404B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108833950B (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
JP6754011B2 (ja) | 音声サービスを提供するための方法、装置およびサーバ | |
US10277697B2 (en) | Method and system for pushing web application message | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
US20220115012A1 (en) | Method and apparatus for processing voices, device and computer storage medium | |
WO2019072197A1 (zh) | 一种红包发放方法、设备以及介质 | |
CN108989404B (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
EP3836484B1 (en) | Method for transmitting live message, apparatus, electronic device, medium and computer program product | |
US11990130B2 (en) | Method, apparatus, device and computer storage medium for processing voices | |
CN109286684B (zh) | 一种通信连接的处理方法、装置、代理服务器及存储介质 | |
CN111131499A (zh) | 并发和异步任务处理方法及其设备 | |
CN112015383A (zh) | 一种登录方法和装置 | |
CN111427710B (zh) | 应用程序中组件的通信方法、装置、设备及存储介质 | |
CN113055348B (zh) | 一种跨平台数据请求方法、装置及电子设备 | |
CN114390239B (zh) | 通信方法、装置、系统、电子设备以及存储介质 | |
KR102196403B1 (ko) | 재지향 감소 | |
CN112866622B (zh) | 信息处理方法、装置、服务器、存储介质和系统 | |
CN116248582A (zh) | 物联网通信方法、电子设备及物联网系统 | |
CN113162998B (zh) | 一种智能交互通信方法及通信系统 | |
CN111327511B (zh) | 即时通讯方法、系统、终端设备与存储介质 | |
CN111901366A (zh) | 一种数据推送方法、装置、设备和存储介质 | |
CN111770051B (zh) | 一种云游戏分享方法、装置、设备及介质 | |
CN112671822B (zh) | 服务请求处理方法、装置、存储介质、服务器和系统 | |
CN118250341B (zh) | 表单请求处理方法、装置、设备及存储介质 | |
US20220294874A1 (en) | Method for reporting asynchronous data, electronic device and storage medium |
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 |