Methods and devices for real-time data push

By encapsulating the descriptive information of financial product data in the header of the data transmission message during internet live streaming and using the existing live streaming data transmission protocol, the problem of high cost of financial product push is solved, and low-cost and efficient data push is achieved.

CN115996215BActive Publication Date: 2026-05-26TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2021-10-09
Publication Date
2026-05-26

Smart Images

  • Figure CN115996215B_ABST
    Figure CN115996215B_ABST
Patent Text Reader

Abstract

This application provides a method and apparatus for real-time data push. The method includes: receiving a data transmission message, the data transmission message including a live data stream and first information, wherein the first information is encapsulated in the header of the data transmission message and is used to describe recommended data; and obtaining the recommended data based on the first information. This application embodiment, by encapsulating the first information describing the recommended data in the header of the data transmission message, eliminates the need for customized development for data push, thus improving the timeliness of data push and reducing the cost of data push.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of Internet technology, and in particular to a method and apparatus for real-time data push. Background Technology

[0002] With the rapid development of internet technology, live streaming has become a trend. Generally, the broadcaster's terminal pushes live data to the server, and the viewer's terminal pulls the live data from the server. During the live stream, the broadcaster's terminal can recommend items to the viewer's terminal, and the viewer's terminal can then display the recommended items.

[0003] During the push and pull streaming of live broadcast data, data transmission protocols can be used, such as Real-Time Messaging Protocol (RTMP), Web Real-Time Communication (WebRTC), and proprietary protocols encapsulated based on User Datagram Protocol (UDP) to transmit streaming media data. When the recommended items in the live broadcast scenario include financial products, since financial products are not considered streaming media data, data is generally transmitted using Extensible Messaging and Presence Protocol (XMPP) or Hypertext Transfer Protocol (HTTP). Therefore, pushing financial product data requires customized development, which is costly. Thus, a low-cost data push solution is urgently needed. Summary of the Invention

[0004] This application provides a method and apparatus for real-time data push. By encapsulating first information describing the recommended data in the header of the data transmission message, the data push does not require customized development, which helps to improve the timeliness of data push and reduce the cost of data push.

[0005] In a first aspect, embodiments of this application provide a method for pushing real-time data, the method comprising:

[0006] The received data transmission message includes a live data stream and first information, wherein the first information is encapsulated in the header of the data transmission message and is used to describe the recommended data;

[0007] Based on the first information, obtain the recommended data.

[0008] In some alternative embodiments, the method may be performed by a first device that can receive data transmission messages from a second device.

[0009] Optionally, the first device includes a viewer terminal and the second device includes a server. Alternatively, the first device includes a server and the second device includes a broadcaster terminal; there is no limitation on this.

[0010] In some optional embodiments, the method further includes: sending the recommended data based on the first information, for example, sending the recommended data to a third device.

[0011] In some alternative embodiments, when the first device includes a server and the second device includes a broadcaster terminal, the third device includes a viewer terminal.

[0012] In some alternative embodiments, the recommended data includes financial products.

[0013] Secondly, embodiments of this application provide a method for real-time data push, including:

[0014] Obtain recommended data;

[0015] Determine the first piece of information, which is used to describe the recommended data;

[0016] Send a data transmission message, the data transmission message including a live data stream and the first information, the first information being encapsulated in the header of the data transmission message.

[0017] In some alternative embodiments, the method may be performed by a second device that can send the data transmission message to the first device.

[0018] Optionally, the first device includes a viewer terminal and the second device includes a server. Alternatively, the first device includes a server and the second device includes a broadcaster terminal; there is no limitation on this.

[0019] Thirdly, a device for real-time data push is provided, comprising:

[0020] A transceiver unit is used to receive data transmission messages, the data transmission messages including a live data stream and first information, wherein the first information is encapsulated in the header of the data transmission message and is used to describe the recommended data;

[0021] The processing unit is configured to obtain the recommended data based on the first information.

[0022] Fourthly, a device for real-time data push is provided, including:

[0023] The acquisition unit is used to acquire recommendation data;

[0024] Processing unit, configured to determine first information, the first information being used to describe the recommended data;

[0025] The transceiver unit is used to send data transmission messages, the data transmission messages including a live data stream and the first information, the first information being encapsulated in the header of the data transmission messages.

[0026] Fifthly, an electronic device is provided, comprising: a processor and a memory;

[0027] The memory is used to store computer programs;

[0028] The processor is used to execute the computer program to implement the method described above.

[0029] In a sixth aspect, a chip is provided, comprising: a processor for retrieving and running a computer program from a memory, causing a device having the chip mounted to perform the methods described above.

[0030] In a seventh aspect, a computer-readable storage medium is provided, the storage medium including computer instructions that, when executed by a computer, cause the computer to perform the method described above.

[0031] Eighthly, a computer program product is provided, including computer program instructions that, when executed on a computer, cause the computer to perform the methods described above.

[0032] This application embodiment encapsulates the first information used to describe the recommended data in the header of the data transmission message, that is, it uses the same data transmission protocol as the live data stream to push the first information, thereby eliminating the need for customized development to push real-time data. On the one hand, this can help improve the timeliness of data push, and on the other hand, it can reduce the cost of pushing real-time data. Attached Figure Description

[0033] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0034] Figure 1 This is a schematic diagram of a system architecture applicable to embodiments of this application;

[0035] Figure 2 This is a schematic flowchart illustrating a live streaming method provided in an embodiment of this application;

[0036] Figure 3This is an example of the display interface of the broadcaster terminal provided in the embodiments of this application;

[0037] Figure 4 This is another example of the display interface of the broadcaster terminal provided in the embodiments of this application;

[0038] Figure 5 This is an example of an RTMP message provided in an embodiment of this application;

[0039] Figure 6 This is an example of the parsed index information provided in the embodiments of this application;

[0040] Figure 7 This is an example of an actor cache pool list provided in an embodiment of this application;

[0041] Figure 8 This is a schematic block diagram of a real-time data push device provided in an embodiment of this application;

[0042] Figure 9 This is a schematic block diagram of another real-time data push device provided in the embodiments of this application;

[0043] Figure 10 This is a schematic block diagram of an electronic device provided in an embodiment of this application. Detailed Implementation

[0044] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

[0045] It should be understood that in the embodiments of this application, "B corresponding to A" means that B is associated with A. In one implementation, B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.

[0046] In the description of this application, unless otherwise stated, "at least one" means one or more, and "multiple" means two or more.

[0047] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.

[0048] To facilitate understanding of the embodiments of this application, the relevant concepts involved in the embodiments of this application will be briefly introduced as follows:

[0049] Live streaming refers to the process of transmitting the packetized content from the capture stage to a server, that is, transmitting the live audio and video signals over the network. Specifically, the captured audio and video content can be encoded, and the encoded audio and video content can be uploaded to the server based on a specific data transmission protocol.

[0050] Live streaming pull: This refers to the process of retrieving existing live content from a server using a specified address, essentially transmitting audio and video signals from the network to the playback device. Specifically, it involves retrieving audio and video content from the server based on a specific data transmission protocol and then decoding and playing that content.

[0051] Examples of data transmission protocols include, but are not limited to, RTMP, WebRTC, and proprietary protocols based on UDP encapsulation.

[0052] Financial Product Data (FPD): Refers to the data structure of financial products in a live streaming scenario. Financial products include securities, funds, stocks, options, or combinations thereof, without limitation. An FPD may include at least one of the following: the financial product's identifier ID, name, minimum amount, annual interest rate, landing page Uniform Resource Locator (URL), and time limit. A complete financial product requires a well-configured FPD. In this embodiment, the broadcaster's terminal and server sides can be configured with a unified encapsulated FPD.

[0053] RTMP, based on the Transmission Control Protocol (TCP), is a protocol family that includes the basic RTMP protocol and various variants such as RTMPT / RTMPS / RTMPE. RTMP is a network protocol designed for real-time data communication, primarily used for audio, video, and data communication between Flash / AIR platforms and streaming media / interactive servers that support the RTMP protocol. In this embodiment, information indicating financial products or FPDs is transmitted in the RTMP protocol header.

[0054] An actor object: An actor object refers to a basic unit of computation. It can receive messages and perform calculations based on them. Furthermore, an actor object is stateful, and its state can be self-controlled or controlled by the message sender. In this embodiment, the actor object is associated with recommended data, such as financial products (e.g., the financial product's FPD). The sending of recommended data, such as financial product data (e.g., data in the FPD), can be controlled by controlling the actor object's state to be in an execution state.

[0055] The following is a brief introduction to the application scenarios to which the technical solutions of the embodiments of this application are applicable. Figure 1 This is a schematic diagram of a network system to which this application's embodiments apply. For example... Figure 1 As shown, the system includes at least one broadcast terminal 101. Figure 1 Taking one as an example), at least one viewer terminal 102 ( Figure 1 (Taking three as an example) and server 103. The broadcast terminal 101, viewer terminal 102, and server can be connected wirelessly or via a wired network. For example, broadcast terminal 101 or viewer terminal 102 may include a computer, mobile phone, tablet phone, smart TV, or other terminal, and server 103 may be a backend server or a cloud server providing cloud computing or cloud storage services; this application does not limit this.

[0056] It should be noted that the embodiments of this application use the anchor terminal and the audience terminal as examples to distinguish the terminals implementing the live streaming method of this application, but the embodiments of this application are not limited to this. For example, the anchor terminal may also be called the first terminal, the audience terminal may also be called the second terminal, or others.

[0057] As an example, an application can be installed on the broadcaster terminal 101 or the viewer terminal 102. Through this application, the broadcaster terminal 101 or the viewer terminal 102 can perform functions such as data transmission and message interaction via the server 103. Optionally, the application can be an application within the operating system or a third-party application; there is no limitation. For example, the application can be a live streaming application with video live streaming functionality. Optionally, the live streaming application can also have other functions, such as shopping, music, and gaming functions; this application does not limit its scope in this regard.

[0058] It should be noted that the application scenarios described above are for illustrative purposes only and are not intended to limit the scope of this application. In specific implementations, the technical solutions provided by the embodiments of this application can be flexibly applied according to actual needs. For example, the embodiments of this application can also be applied to scenarios such as targeted message push or advertising push, without limitation.

[0059] In a live streaming scenario, the broadcaster terminal 101 and the viewer terminal 102 can log in to the live streaming application using their accounts. The broadcaster terminal 101 uses this application to stream the content, pushing the collected live stream content to the server 103. The viewer terminal 102 retrieves the live stream content from the server 103 through the application. During the live stream, the broadcaster terminal 101 can push real-time data to the viewer terminal 102, such as data on recommended items or financial products, without limitation. Currently, for recommended items including financial products, customized development is required, such as using XMPP or HTTP protocols for data transmission, which results in higher maintenance costs.

[0060] In view of this, embodiments of this application provide a method for pushing real-time data. In this method, first information can be encapsulated in a data transmission message (e.g., header) containing a live data stream. This first information is used to describe recommended data, thereby enabling the push of the real-time data. Since embodiments of this application encapsulate the first information describing the recommended data in the data transmission message (e.g., header), real-time data push can be achieved without customized development. This helps to improve the timeliness of data push and reduces the cost of data push.

[0061] For example, the recommended data may be items recommended during the live stream (such as financial products), advertising messages, or targeted messages, etc., without limitation.

[0062] Figure 2 This illustration shows a schematic flowchart of a real-time data push method 200 provided in an embodiment of this application. The broadcast terminal in method 200 can be, for example, a... Figure 1 The broadcaster terminal 101 and the viewer terminal can be, for example, the broadcaster terminal 101. Figure 1 The viewer terminal 102 in the middle, the server can be, for example, Figure 1 Server 103 in the context is not limited. For example... Figure 2 As shown, method 200 includes steps 210 to 250.

[0063] 210, The broadcaster's terminal obtains the recommended data.

[0064] For example, during a live stream, the streamer (an example of a user) on the broadcasting terminal can operate the terminal in real time to input and recommend products based on the content being discussed, or can preset products to be pushed to the broadcaster before the stream begins. In response to the streamer's actions, the broadcasting terminal retrieves the recommended products. As an example, the items recommended by the streamer may include financial products, in which case the recommended data includes financial products.

[0065] In some optional embodiments, when the recommended data includes financial products, the broadcaster terminal can display the financial products based on their FPD (Film Processing Device). Then, it obtains a push notification input from the user through a first input area, instructing the broadcaster terminal to push the financial product. Based on this push notification, the broadcaster terminal can determine which financial product to recommend. Optionally, the broadcaster terminal can display the first input area on the interface, allowing the user to input the push notification by clicking or touching the first input area.

[0066] As shown in Table 1, an FPD may include at least one of the following: financial product identifier ID, name, minimum amount, annual interest rate, landing page Uniform Resource Locator (URL), and time limit.

[0067] Table 1

[0068] Field Name illustrate productID Product ID productName Product Name minAmount minimum amount rateOfYear Annual interest rate deatailUrl Landing Page URL timeLimit Time limit

[0069] Figure 3 An example of the broadcaster's terminal display interface is shown. For example... Figure 3 As shown, the broadcast terminal can display at least one (FPD) based on pre-stored FPDs. Figure 3 The interface can display two financial products, including details such as product name, minimum investment amount, annual interest rate, and time limit. Optionally, the broadcaster's terminal can also display a "push" button for each financial product (an example of the input area). When the broadcaster recommends a financial product, they can click or touch the corresponding "push" button. In response to clicking or touching the "push" button, the broadcaster's terminal receives a push instruction and confirms that the financial product corresponding to the "push" button is the recommended financial product.

[0070] As one possible implementation, the broadcaster terminal can have a built-in tool for creating FPDs. When the broadcaster terminal is about to start a live stream, or during the live stream, it can construct or modify an FPD based on the FPD creation tool. For example, such as... Figure 4 As shown, the FPDtool can display the names of multiple related products and / or other information about the financial products, such as minimum investment amount, annual interest rate, time limit, and risk level, to the broadcaster's terminal through an interface. Users (e.g., broadcasters) can select one or more financial products from these related products (e.g., in...). Figure 4 The user selected Shanxi Securities Ultra-Short Bond C). In response to the user's selection, the FPDtool was used to create the FPD for this financial product.

[0071] In some optional embodiments, the broadcaster can input the time, type, and target audience for the data to be pushed. For example, the broadcaster can input event or time information to indicate the time, type, or target audience for the data to be pushed. Correspondingly, the broadcaster's terminal can obtain this event or time information. That is, when a certain event (or events) or time is reached during the live broadcast, data can be pushed to the viewers' terminals. For example, for different audience groups, the server will push different data, such as items or financial products, for example, the items or financial products that the broadcaster is currently explaining.

[0072] As an example, event or time information may include one or more of the following:

[0073] 1) The user followed the streamer (i.e., the user's account logged in on the live streaming application on the viewer's terminal followed the streamer's account logged in on the live streaming application on the streamer's terminal).

[0074] 2) The user has watched the live stream for a certain duration (i.e., the viewer's terminal has played the live stream data stream from the broadcaster's terminal for a certain duration).

[0075] 3) The number of times a user enters the live stream and watches it reaches a certain amount (i.e., the number of times the viewer's terminal plays the live stream data stream from the broadcaster's terminal).

[0076] 4) Reach a specific point in time.

[0077] 220, the broadcaster's terminal obtains the first information.

[0078] The first piece of information is used to describe the recommended data, that is, the recommended data obtained in step 210, which may be items or financial products.

[0079] In some optional embodiments, the first information includes at least one of type information, time information, and business information of the recommended data. The type information can indicate the type of the recommended data, the time information can indicate the valid time period of the recommended data, and the business information can indicate the business content of the recommended data.

[0080] For example, when the recommended data includes financial products, the types of financial products include securities, funds, stocks, options, or combinations thereof. As an example, the type information may include data communication protocol information, which corresponds to the type of the recommended data. For instance, when the transmitted type information begins with codeM: / / v17, the recommended financial product is a security.

[0081] For example, when the recommended data includes financial products, the business information can indicate data about the financial product, such as an Financial Product Distribution Device (FPD). As a specific example, the business information may include at least one of the following: the ID, name, or index of the financial product (or FPD), without limitation.

[0082] In some optional embodiments, the broadcaster terminal can also obtain a public key issued by the server and encrypt the first information based on that public key. That is, the first information can be encrypted information. Optionally, the broadcaster terminal can obtain the public key issued by the server in advance and save that public key.

[0083] As an example, the broadcaster terminal can encrypt the index of financial product data, such as a 2-digit hexadecimal number, using a hash-based message authentication code (HMAC) to generate a string and index information (indexMsg). For example, the string can be 64 bits long, but this application does not limit this. This string and index information can then be used as the first piece of information. This embodiment of the application, by encrypting the financial product data to obtain the first piece of information, can further improve the security and reliability of pushing financial products.

[0084] In some optional embodiments, the broadcaster terminal may also obtain second information, which is used to indicate the conditions that trigger the server to push the financial product to the viewer terminal. For example, the second information may be the aforementioned event or time information. That is, when the conditions, time, or event indicated by the second information are met, the server pushes the corresponding financial product to the viewer terminal.

[0085] 230. The broadcaster terminal sends a data transmission message to the server. Here, this data transmission message is a push streaming data message encapsulated according to the data stream transmission protocol.

[0086] The data transmission message includes a live data stream and the aforementioned first information, which is encapsulated in the header of the data transmission message. As an example, when the data transmission message is an RTMP message, the first information can be encapsulated in the basic header and / or message header of the RTMP message, for example, it can be encapsulated in an extensible field in the basic header or message header, without limitation.

[0087] In some embodiments, RTMP protocol transmission can format data to obtain RTMP messages. During actual transmission, the sender divides the message into chunks with message IDs. Each chunk may be a separate message or a part of a message. The receiver can reconstruct the complete message from the chunks based on the message IDs contained within them, thereby enabling the sending and receiving of information.

[0088] Figure 5 An example of a chunkformat is shown, where a chunk includes a chunkheader and chunkdata. The chunkheader includes a basic header, a message header, and an extended timestamp. In some alternative embodiments, the initial information may be encapsulated in the basic header within the chunkheader or in the message header; this application is not limited to this.

[0089] As an example, when the first information includes index information, if the string and index information are encrypted using HMAC, the index information can be encapsulated in the basic header of the chunk header, and the string can be placed in the message header of the chunk header.

[0090] In some optional embodiments, the data transmission message may further include second information. For example, the second information may be encapsulated in the header of the data transmission message, such as the basic header or message header of an RTMP protocol message; this is not limited, and details can be found in the description of the first information. As a specific example, the second information may be encapsulated in an adjacent field with the first information; this is not limited.

[0091] Correspondingly, the server receives the data transmission message and obtains the first information from it. For example, after receiving the data transmission message, the server can check the message header to obtain the first information. Optionally, the server can also check the message header to obtain the second information.

[0092] In some optional embodiments, when the index information is encapsulated in the basic header of the chunk header and the string is placed in the message header of the chunk header, the index information in the basic header of the data transmission message and the string in the message header can be checked, and the index information can be parsed through the string according to the HMAC algorithm to obtain the parsed index information as the first information.

[0093] 240. The server retrieves recommended data based on the first piece of information.

[0094] For example, the server can obtain recommended data based on at least one of the type information, time information, and business information included in the first information.

[0095] As a concrete example, when the type information includes data communication protocol information, such as starting with codeM: / / v17, the receiving end (such as the server) parses the first information according to the product type (such as the securities type) corresponding to the agreed protocol information (i.e., codeM: / / v17) to determine the recommended financial product.

[0096] As another concrete example, when business information can be used to indicate the FPD (Financial Product Distribution Device), such as at least one of the following: the FPD's ID, name, or index, the server can determine the recommended FPD for the financial product based on this business information.

[0097] As a specific example Figure 6 An example of index information is shown. Here, the first information includes index information consisting of 6 hexadecimal digits, which can be used to indicate the recommended financial product. For example, the first two digits of this 6-digit hexadecimal data can be used to indicate the Financial Product's Target Price (FPD). For instance, a server can store the correspondence between index values ​​and FPDs; when the first two digits of the index information are parsed, the FPD can be determined based on this correspondence.

[0098] In some optional embodiments, the server can also distribute the recommended data to different hosts on the server side for business processing based on business information. For example, when it is determined that the recommended financial product corresponds to a first FPD based on business information, the first FPD is allocated to host B for business processing. For example, host B obtains the recommended first FPD and sends the data of the first FPD to the viewer terminal.

[0099] In some specific implementations of this application, a data transmission protocol or format can be defined between the broadcaster terminal and the server. This protocol or format can correspond to different data types. For example, for financial products such as securities, a transmission protocol or format of codeM: / / v17 can be defined. Exemplarily, the server can have a built-in parser to parse the information sent by the broadcaster terminal describing the recommended products. This parser confirms the communication protocol and data encapsulation format between the broadcaster terminal and the server when establishing a streaming connection. After receiving the information describing the recommended products, the server can parse the data according to the agreed protocol format to obtain the recommended data. Specifically, the parsing process can be found in the description above and will not be repeated here.

[0100] 250, The server sends the recommended data to the viewer's terminal.

[0101] For example, when the recommended data is a financial product, the server can send the financial product data to the viewer's terminal based on the first information. Correspondingly, the viewer's terminal receives the financial product data and can then display the financial product on the viewer's screen, helping the viewer understand the product being explained by the broadcaster in real time.

[0102] Therefore, this application embodiment encapsulates the first information used to describe the recommended data in the header of the data transmission message, that is, it uses the same data transmission protocol as the live data stream to push the first information, thereby eliminating the need for customized development to push real-time data. On the one hand, this can help improve the timeliness of the pushed data, and on the other hand, it can reduce the cost of pushing real-time data.

[0103] In some optional embodiments, the server can obtain the actor object associated with the recommended data based on the first information, and then determine that the state of the actor object is in the execution state in order to send the recommended data to the audience terminal. In some embodiments, the actor object can internally hold a status field to identify the status information of the data associated with the actor object. That is, the state of the recommended data can be controlled according to the state of the actor object. For example, when the actor object is controlled to be in the execution state, the recommended data associated with that actor can be sent to the audience terminal.

[0104] This application embodiment associates an actor object with recommended data, thereby controlling the sending status of the recommended data by controlling the state of the actor object, so as to send the recommended data to the audience terminal, thereby helping to further improve the timeliness of push data and improve the efficiency of data transmission.

[0105] For example, the financial product described in the first information (e.g., the FPD indicated by business information) can be associated with an actor object. For instance, the association between the financial product (or FPD) and the actor object can be pre-stored in the server. The server can determine the actor object based on the first information and this association. Here, the association between the financial product (or FPD) and the actor object refers to the association between the data of the financial product (or the data contained in the FPD) and the actor object. As one possible implementation, the data of the financial product (or the data contained in the FPD) in the actor object can be associated using an index function. That is, the data of the financial product (or the data of the FPD) associated with the actor object can be obtained through the index function of the actor object. When the actor object is determined to be in an execution state, the data of the FPD associated with the actor object is sent to the viewer terminal.

[0106] In some optional embodiments, the server (e.g., in memory) may maintain a list of cache pools, which may contain at least one actor object. When it is determined that the cache pool list includes an actor object associated with the data described by the first information (i.e., the recommended data), the state of that actor object is changed from a reused state to a waiting state. In some embodiments, the actor object may also be stored in memory. When it is determined that the cache pool list does not include an actor object associated with the data described by the first information (i.e., the recommended data), the actor object for the data described by the first information is created, and the state of that actor object is set to a waiting state.

[0107] For example, such as Figure 7 As shown, the server can maintain a list of actor cache pools (e.g., in the form of an array list), which can contain at least one actor object, such as actor_A, actor_B, actor_C, actor_D, etc., with each actor object corresponding to an index value. Furthermore, the state of each actor object in the actor cache pool is a reused state. Here, the reused state indicates that the actor object has been executed and has not been destroyed. For example, a processing module in the server (e.g., a processor) can retrieve actor objects from the actor cache pool list, or store actor objects in the actor cache pool list, etc., without limitation.

[0108] See Figure 6When the server receives the streaming data from the broadcaster's terminal and obtains the index value "05", it can search for the actor object corresponding to "05" in the actor cache pool. If the actor cache pool list includes the actor object corresponding to "05", for example, actor_B, the state of that actor_B object is changed from the reuse state to the waiting state. Here, the waiting state indicates that the actor object is waiting to be executed and has been associated with data (such as financial product data). If the actor cache pool list does not include the actor object corresponding to "05", the actor object associated with "05" is created, and the state of that actor object is set to the waiting state.

[0109] In some optional embodiments, when the recommended data includes financial products, the File Device Prospectus (FPD) of the financial product can be retrieved from the database based on the first information, and an actor object associated with the FPD can be created. For example, an index function can be used to determine the index field corresponding to the FPD, and then an actor object can be created based on the index field, wherein the actor object includes the index field. Here, the index function can be a preset function and is not limited. Optionally, after creating the actor object, its state can be determined to be a waiting state. Thus, when the state of the actor object is determined to be an execution state, the data in the FPD corresponding to the index field of the actor object can be sent to the third device. For example, after the actor object is in an execution state, the data of the corresponding FPD can be retrieved from the database based on the index field and index function in the actor object, and the data in the FPD can be sent.

[0110] Continuing the example above, when creating the actor object corresponding to "05", we can first determine the FPD (Fundamental Product Detection) of the financial product corresponding to "05", then create an actor object associated with that FPD, such as the index "05", and set the actor's state to a waiting state. For example, we can determine the index field corresponding to the FPD of "05" based on the index function, and then create an actor object that includes that index field, i.e., the actor object corresponding to "05". After the actor object is in the execution state, we can retrieve the data of the FPD corresponding to the index "05" from the database based on the index field and index function in the actor object, and then send the data from the FPD.

[0111] Therefore, this application embodiment encapsulates the information used to describe the recommended financial products in the header of the data transmission message, that is, it uses the same data transmission protocol as the live data stream to push financial products. This eliminates the need for customized development to push financial products, which can help improve the timeliness of pushing financial products and reduce the cost of pushing financial products.

[0112] It should be noted that the embodiments of this application describe the method provided by the embodiments of this application by taking the first information including the index of the FPD, that is, determining the FPD according to the index of the FPD. However, the embodiments of this application are not limited to this. For example, the first information may also include the ID, name, or other information of the FPD.

[0113] In some optional embodiments, after determining that the actor object is in the execution state, the actor object can be added to the cache pool list, and its state can be set to reuse state. This way, when the recommended data is received again, the actor object associated with the recommended data can be retrieved directly from the cache pool list without creating the new actor object, thereby further improving the timeliness of data push and increasing data transmission efficiency.

[0114] In some optional embodiments, when the second information is obtained in the header of the data transmission message, the financial product data can be sent to the audience terminal when it is determined that the conditions indicated by the second information are met. For example, the state of the actor object can be changed from the waiting state to the execution state, so as to send the data in the actor object to the audience terminal, thereby enabling targeted data push and improving user experience.

[0115] In some alternative embodiments, the data of the financial product can be sent to the viewer's terminal along with the live stream. For example, the server can continue to encapsulate information describing the recommended data in the header of the data transmission message. The viewer's terminal can obtain the live data stream and the first information based on the data transmission message, and then obtain the recommended data based on the first information.

[0116] Similarly, a data transmission protocol or format can be defined between the server and the viewer's terminal. For example, the viewer's terminal can have a built-in parser to parse the information sent by the server describing the recommended data. This parser can be initialized when the viewer enters the live stream. After successful initialization, the communication protocol and data encapsulation format of both parties can be confirmed when establishing a streaming connection between the server and the viewer's terminal. After receiving the information describing the recommended products, the viewer's terminal can parse the data according to the agreed protocol format to obtain the recommended data. Specifically, this process is similar to the process described above regarding the transmission of information describing the recommended data between the broadcaster's terminal and the server; please refer to the description above.

[0117] In some optional embodiments, the server may also send financial product data to the viewer's terminal via vendor push or self-built long connection, which is not limited in this application.

[0118] The specific embodiments of this application have been described in detail above with reference to the accompanying drawings. However, this application is not limited to the specific details of the above embodiments. Within the scope of the technical concept of this application, various simple modifications can be made to the technical solutions of this application, and these simple modifications all fall within the protection scope of this application. For example, the various specific technical features described in the above embodiments can be combined in any suitable manner without contradiction. To avoid unnecessary repetition, this application will not describe the various possible combinations separately. Furthermore, various different embodiments of this application can also be arbitrarily combined, as long as they do not violate the spirit of this application, they should also be considered as the content disclosed in this application.

[0119] It should also be understood that, in the various method embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0120] The above text combined Figures 1 to 7 The method embodiments of this application are described in detail below, in conjunction with... Figures 8 to 10 The following describes in detail the device embodiments of this application.

[0121] Figure 8 A schematic block diagram of a real-time data push device 400 provided in an embodiment of this application is shown. Figure 8 As shown, the device 400 includes a transceiver unit 410 and a processing unit 420.

[0122] The transceiver unit 410 is used to receive data transmission messages, the data transmission messages including live data streams and first information, wherein the first information is encapsulated in the header of the data transmission messages and is used to describe recommended data.

[0123] Processing unit 420 is used to obtain the recommended data based on the first information.

[0124] Optionally, the transceiver unit 410 can be used to receive data transmission messages from the second device.

[0125] In some embodiments, the real-time data push device 400 can be a server, or a chip or circuit disposed in the server. In this case, the second device can be a broadcast terminal. That is, the broadcast terminal and the server can push real-time data by encapsulating information describing the recommended data in the header of the data transmission message.

[0126] In some embodiments, the real-time data push device 400 can be a viewer terminal, or a chip or circuit disposed in the viewer terminal. In this case, the second device can be a server. That is, the server and the viewer terminal can push real-time data by encapsulating information describing the recommended data in the header of the data transmission message.

[0127] In some optional embodiments, the first information includes at least one of the type information, time information, and business information of the recommended data.

[0128] In some optional embodiments, the type information includes data communication protocol information, wherein the data communication protocol information corresponds to the type of the recommended data.

[0129] In some optional embodiments, the data transmission message includes a Real-time Message Transfer Protocol (RTMP) message, wherein the first information is encapsulated in the base header or message header of the RTMP message.

[0130] In some optional embodiments, the transceiver unit 410 is further configured to send the recommended data based on the first information. For example, the recommended data can be sent to a third device. In the case where the first device is a server and the second device is a broadcast terminal, the third device could be, for example, a viewer terminal.

[0131] In some optional embodiments, the transceiver unit 410 is specifically used for:

[0132] Based on the first information, obtain the actor object associated with the recommended data;

[0133] The state of the actor object is determined to be in the execution state in order to send the recommended data.

[0134] In some optional embodiments, the processing unit 420 is further configured to put the actor object into a cache pool list and determine that the state of the actor object is a reuse state.

[0135] In some optional embodiments, the transceiver unit 410 is specifically used for:

[0136] When it is determined that the cache pool list includes the actor object associated with the recommended data, the state of the actor object is changed from the reuse state to the waiting state.

[0137] When it is determined that the recommended data-associated actor object is not included in the cache pool list, the recommended data-associated actor object is created, and the state of the actor object is determined to be a waiting state.

[0138] In some optional embodiments, when the recommended data includes financial products, the transceiver unit 410 is specifically configured to: obtain financial product data FPD from the database based on the first information, wherein the FPD includes at least one of the following: financial product identifier ID, name, minimum amount, annual interest rate, landing page Uniform Resource Locator URL, and time limit;

[0139] The index field corresponding to the FPD is determined based on the index function;

[0140] Create an actor object associated with the FPD, wherein the actor object includes the index field;

[0141] The state of the actor object is determined to be in the execution state, so that the data in the FPD corresponding to the index field of the actor object can be sent to the third device.

[0142] In some optional embodiments, the data transmission message further includes second information, the first information being encapsulated in the header of the data transmission message, and the second information being used to indicate the conditions that trigger the server to push the financial product to the viewer's terminal.

[0143] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be found in the method embodiments. To avoid repetition, further details are omitted here. Specifically, Figure 8 The real-time data recommendation device 400 shown may correspond to a server or viewer terminal executing the method 200 of the embodiments of this application, and the foregoing and other operations and / or functions of the various modules in device 400 are respectively for implementing Figure 2 The corresponding processes executed by the server or viewer terminal are not described in detail here for the sake of brevity.

[0144] Figure 9 A schematic block diagram of a real-time data push device 600 provided in an embodiment of this application is shown. Figure 9 As shown, the real-time data push device 600 includes an acquisition unit 610, a processing unit 620, and a transceiver unit 630.

[0145] Unit 610 is used to obtain recommended data.

[0146] The processing unit 620 is configured to determine first information, which describes the recommended data.

[0147] The transceiver unit 630 is used to send a data transmission message, the data transmission message including a live data stream and the first information, the first information being encapsulated in the header of the data transmission message.

[0148] Optionally, the transceiver unit 630 can be used to send data transmission messages to the first device.

[0149] In some embodiments, the real-time data push device 600 can be a broadcast terminal, or a chip or circuit disposed in the broadcast terminal. In this case, the first device can be a server. That is, the broadcast terminal and the server can push real-time data by encapsulating information describing the recommended data in the header of the data transmission message.

[0150] In some embodiments, the real-time data push device 600 can be a server, or a chip or circuit disposed in the server. In this case, the first device can be a viewer terminal. That is, the server and the viewer terminal can push real-time data by encapsulating information describing the recommended data in the header of the data transmission message.

[0151] In some optional embodiments, the first information includes at least one of the type information, time information, and business information of the recommended data.

[0152] In some optional embodiments, the type information includes data communication protocol information, wherein the data communication protocol information corresponds to the type of the recommended data.

[0153] In some optional embodiments, the data transmission message includes a Real-time Message Transfer Protocol (RTMP) message, wherein the first information is encapsulated in the base header or message header of the RTMP message.

[0154] In some optional embodiments, the acquisition unit 610 is specifically used for:

[0155] Based on the financial product data (FPD) of the recommended financial products, the financial products are displayed. The FPD includes at least one of the following: financial product identifier, name, minimum amount, annual interest rate, landing page URL, and time limit.

[0156] The push instruction input by the user is obtained through the first input area, and the push instruction is used to instruct the push of the financial product;

[0157] Based on the push notification, the recommended financial product is determined.

[0158] In some optional embodiments, the data transmission message further includes second information encapsulated in the header of the data transmission message, the second information being used to indicate the conditions that trigger the server to push the financial product to the viewer's terminal.

[0159] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be found in the method embodiments. To avoid repetition, further details are omitted here. Specifically, Figure 9 The real-time data push device 600 shown can correspond to the broadcaster terminal or server in the method 200 of the embodiments of this application, and the foregoing and other operations and / or functions of each module in the device 600 are respectively for implementing Figure 2 The corresponding processes executed by the broadcaster's terminal or server are not detailed here for the sake of brevity.

[0160] The apparatus of this application embodiment has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that this functional module can be implemented in hardware, in software instructions, or in a combination of hardware and software modules. Specifically, the steps of the method embodiments in this application can be completed by integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in this application embodiment can be directly embodied as being executed by the hardware processor, or executed by a combination of hardware and software modules in the processor. Optionally, the software module can be located in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.

[0161] Figure 10 This is a block diagram of an electronic device according to an embodiment of this application. The device may be... Figure 1 The server or broadcaster terminal shown is used to execute the real-time data recommendation method described in the above embodiments, as detailed in the description of the above method embodiments.

[0162] Figure 10The illustrated electronic device 800 includes a memory 801, a processor 802, and a communication interface 803. The memory 801, processor 802, and communication interface 803 are communicatively connected to each other. For example, the memory 801, processor 802, and communication interface 803 can be connected via a network. Alternatively, the electronic device 800 may also include a bus 804. The memory 801, processor 802, and communication interface 803 are communicatively connected to each other via the bus 804. Figure 10 It is an electronic device 800 in which the memory 801, processor 802, and communication interface 803 are connected to each other via bus 804.

[0163] The memory 801 can be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 801 can store programs, and when the program stored in the memory 801 is executed by the processor 802, the processor 802 and the communication interface 803 are used to execute the above methods.

[0164] The processor 802 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits.

[0165] The processor 802 can also be an integrated circuit chip with signal processing capabilities. In implementation, the method of this application can be completed through integrated logic circuits in the hardware of the processor 802 or through software instructions. The processor 802 can also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor can be a microprocessor or any conventional processor. The software module can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory 801, and the processor 802 reads information from memory 801 and, in conjunction with its hardware, completes the method of the embodiments of this application.

[0166] The communication interface 803 uses transceiver modules, such as, but not limited to, transceivers, to enable communication between the electronic device 800 and other devices or communication networks. For example, data transmission messages can be sent or received through the communication interface 803.

[0167] When the aforementioned electronic device 800 includes a bus 804, the bus 804 may include a path for transmitting information between various components of the electronic device 800 (e.g., memory 801, processor 802, communication interface 803).

[0168] According to this application, a computer storage medium is also provided, on which a computer program is stored, which, when executed by a computer, enables the computer to perform the methods of the above-described method embodiments. Alternatively, embodiments of this application also provide a computer program product containing instructions, which, when executed by a computer, cause the computer to perform the methods of the above-described method embodiments.

[0169] According to this application, a computer program product or computer program is also provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the method described in the above-described method embodiments.

[0170] In other words, when implemented using software, it can be implemented wholly or partially in the form of a computer program product. This computer program product includes one or more computer instructions. When these computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0171] Those skilled in the art will recognize that the modules and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0172] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or modules may be electrical, mechanical, or other forms.

[0173] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. For example, the functional modules in the various embodiments of this application may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.

[0174] Those skilled in the art will readily understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. Furthermore, reference can be made between the various method embodiments and between the various device embodiments; identical or corresponding content in different embodiments can be mutually referenced, without further elaboration.

Claims

1. A method of real-time data push, characterized by, include: Receive a data transmission message, the data transmission message including a live data stream and first information, wherein the first information is encapsulated in the header of the data transmission message, the first information is used to describe the recommended data, and the first information includes index information corresponding to the recommended data; Based on the first information, obtain the actor object associated with the recommended data, wherein the actor object includes the index information; Based on the actor object, the recommended data is sent to the audience terminal; Wherein, obtaining the actor object associated with the recommended data based on the first information includes: Based on the first information, obtain the recommended data; The index field corresponding to the recommended data is determined based on the indexing function; Establish an actor object for the recommended data association, wherein the actor object includes the index field.

2. The method according to claim 1, characterized in that, The first information is encapsulated in the basic header and / or message header of the data transmission message.

3. The method according to claim 1, characterized in that, The step of sending the recommended data to the audience terminal based on the actor object includes: The state of the actor object is determined to be in the execution state in order to send the recommended data.

4. The method according to claim 3, characterized in that, Also includes: The actor object is added to the cache pool list, and the state of the actor object is determined to be reused.

5. The method according to claim 1, characterized in that, The step of obtaining the actor object associated with the recommended data based on the first information includes: When it is determined that the cache pool list includes the actor object associated with the recommended data, the state of the actor object is changed from the reuse state to the waiting state. When it is determined that the recommended data-associated actor object is not included in the cache pool list, the recommended data-associated actor object is created, and the state of the actor object is determined to be a waiting state.

6. The method according to claim 5, characterized in that, When the recommended data includes financial products, the actor object for establishing the association between the recommended data includes: Based on the first information, obtain financial product data FPD, wherein the FPD includes at least one of the following: financial product identifier ID, name, minimum amount, annual interest rate, landing page URL, and time limit; The index field corresponding to the FPD is determined based on the index function; Create an actor object associated with the FPD, wherein the actor object includes the index field; The step of determining the state of the actor object as an execution state in order to send the recommended data to the third device includes: The state of the actor object is determined to be in the execution state, so that the data in the FPD corresponding to the index field of the actor object can be sent to the third device.

7. The method according to any one of claims 1-6, characterized in that, The data transmission message also includes second information, which is encapsulated in the header of the data transmission message. The second information is used to indicate the conditions that trigger the server to push the recommended data to the viewer's terminal.

8. A device for real-time data push, characterized in that, include: A transceiver unit is used to receive data transmission messages, the data transmission messages including live data streams and first information, wherein the first information is encapsulated in the header of the data transmission messages, the first information is used to describe recommended data, and the first information includes index information corresponding to the recommended data; The processing unit is configured to obtain the recommended data-associated actor object based on the first information, wherein the actor object includes the index information; The processing unit is also configured to send the recommended data to the audience terminal based on the actor object; Specifically, the processing unit is used for: Based on the first information, obtain the recommended data; The index field corresponding to the recommended data is determined based on the indexing function; Establish an actor object for the recommended data association, wherein the actor object includes the index field.

9. An electronic device, characterized in that, include: Processor and memory; The memory is used to store computer programs; The processor is configured to execute the computer program to implement the method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The storage medium includes computer instructions that, when executed by a computer, cause the computer to perform the method as described in any one of claims 1 to 7.

11. A computer program product, characterized in that, It includes computer program code, which, when executed by an electronic device, causes the electronic device to perform the method of any one of claims 1 to 7.