Live message distribution method, system, device and storage medium

By adopting a user-initiated message retrieval mode and message categorization, the complexity of connection management and message routing in live streaming scenarios of the XMPP system is resolved, reducing message loss rate and improving the interactive experience in the live streaming room.

CN116471453BActive Publication Date: 2026-02-03CTRIP TRAVEL NETWORK TECH SHANGHAI0
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310273716.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-20
Publication Date
2026-02-03
Estimated Expiration
2043-03-20

AI Technical Summary

Technical Problem

Existing XMPP systems in live streaming scenarios suffer from problems such as complex client connection management and message routing, high message loss rate, and high resource consumption and lack of guarantee of message importance due to unclassified messages.

Method used

The system adopts a user-initiated message retrieval model. It establishes a message queue by generating and classifying messages into categories such as those sent by the broadcaster, those interacted with by the user, and those that are not interacted with by the user. It prioritizes sending important messages based on user requests, thereby reducing the persistence overhead on the broadcaster side.

Benefits of technology

It reduced message loss rate, decreased the complexity of client connection management and message routing, and improved the interactive experience and resource utilization efficiency in the live streaming room.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116471453B_ABST
    Figure CN116471453B_ABST
Patent Text Reader

Abstract

The application provides a live message distribution method, system, device and storage medium. The method comprises the following steps: forwarding a message based on receiving the message sent by a user terminal; classifying the message based on the forwarded message, and establishing a message queue for the message according to a time sequence; generating an information set corresponding to the user terminal based on at least the request information based on receiving the request information of the user terminal; and feeding back the information set to the user terminal. The application designs a live message distribution method in which a user terminal active pull mode replaces a host terminal push mode, avoids complex user terminal connection management and message routing, reduces the message loss rate, simultaneously only persists the message at the host terminal, greatly reduces the message persistence overhead, classifies the live room message, and based on the user request, preferentially sends important messages, and improves the live room interaction experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of live streaming technology, and more specifically, to live streaming message distribution methods, systems, devices, and storage media. Background Technology

[0002] With the rapid development of internet technology, live streaming has gradually emerged, and interaction within the live streaming room is a crucial component, greatly enhancing the user experience. This has led to the introduction of chat room functionality into live streaming. Interactions between the streamer and viewers, such as initiating raffles and promoting products, as well as interactions between viewers, such as sending real-time comments, likes, and gifts, can all take place in the live chat room. Essentially, a live chat room is a system for sending and distributing messages, connecting streamers and viewers, and viewers with each other, enabling them to participate in the live stream interaction.

[0003] Existing, practical message sending and distribution systems, such as the fully functional XMPP (Extensible Messaging and Presence Protocol) system, are primarily used in IM (Instant Messaging) scenarios, such as chat rooms in WeChat and QQ. XMPP systems are designed so that users connect to the message service using a persistent TCP (Transmission Control Protocol) connection and join a pre-created chat room; real-time messages are only distributed to users currently in the chat room. Furthermore, due to the flexibility of message routing in XMPP systems, introducing message persistence requires persisting a separate copy for each user, which can present challenges when applied to live streaming scenarios.

[0004] For example, in existing XMPP systems, the broadcaster actively sends messages to the user, who passively receives them, without considering whether the user needs such a large number of messages. Furthermore, this approach incurs significant overhead for user connection management and message routing, resulting in a high message loss rate. To prevent the loss of important messages during live streaming, XMPP systems need to persist messages individually for each user, which incurs substantial overhead and management complexity. Moreover, current technologies do not classify or categorize different message types, leading to excessive message sending and high resource consumption without ensuring the importance of the messages received by the user.

[0005] It should be noted that the information disclosed in the background section above is only used to enhance the understanding of the background of the present invention, and therefore may include information that does not constitute prior art known to those skilled in the art. Summary of the Invention

[0006] To address the shortcomings of existing technologies, this invention provides a live message distribution method, system, device, and storage medium.

[0007] An embodiment of the present invention provides a live message distribution method, comprising the following steps:

[0008] Based on the message received from the user terminal, forward the message;

[0009] Based on the received forwarded messages, the messages are classified and message queues are established according to the time sequence of the messages;

[0010] Based on the received request information from the user terminal, at least based on the request information, an information set corresponding to the user terminal is generated; and

[0011] The information set is then fed back to the user terminal.

[0012] Preferably, forwarding the message based on receiving a message sent by the user terminal includes:

[0013] The message receiving module includes a message sequence number generator. When a message is received from a user terminal, the message sequence number generator generates a message sequence number for each message and marks the message. The message sequence number increases sequentially according to the time order in which the message receiving module receives the messages.

[0014] The message receiving module sends the combination of the message and the message sequence number to the message classification module.

[0015] Preferably, the step of classifying the received forwarded messages and establishing message queues for the messages according to their time sequence includes:

[0016] The message classification module stores the received messages in a cache queue;

[0017] The message classification module categorizes the messages in the cache queue into three types: those sent by the broadcaster, those interacted with by the user, and those not interacted with by the user.

[0018] The messages are stored in the first message queue, the second message queue, and the third message queue in the message storage module according to the three categories, and the messages in the cache queue are deleted.

[0019] Preferably, the step of generating an information set corresponding to the user based on the received request information from the user includes:

[0020] The user terminal requests the message from the message storage module and provides a first message sequence number and a user terminal identifier, wherein the first message sequence number is the largest message sequence number among the existing messages of the user terminal;

[0021] The message is returned from the first message queue in ascending order of message number, and the message is returned from the second message queue and the third message queue in descending order of message number, and the information set is established based on the returned messages;

[0022] When the number of messages contained in the information set is equal to a preset value, or when the third message queue has been accessed completely, the process ends and returns, sending the information set and the user terminal identifier to the message distribution module.

[0023] Preferably, the step of classifying the received forwarded messages and establishing message queues for the messages according to their time sequence includes:

[0024] The message classification module establishes a queue of messages according to their time sequence, identifies the messages based on a trained semantic recognition neural network, and adds semantic tags obtained from the identification.

[0025] Preferably, the step of generating an information set corresponding to the user based on the received request information from the user includes:

[0026] Based on the received request information from the user terminal, the request information includes at least a feature tag corresponding to the user terminal and a user terminal identifier. The information set corresponding to the user terminal is established based on the matching of the feature tag with the semantic tag of the message.

[0027] Preferably, feeding back the information set to the user terminal includes:

[0028] The message distribution module receives the information set and the user terminal identifier from the message storage module;

[0029] The message distribution module sends the information set to the corresponding user terminal based on the user terminal identifier.

[0030] Embodiments of the present invention also provide a live message distribution system for implementing the above-described live message distribution method, characterized in that it includes:

[0031] The message receiving module forwards the message based on the message received from the user terminal;

[0032] The message classification module classifies the received and forwarded messages and establishes message queues for the messages according to their time sequence.

[0033] The message storage module, based on the received request information from the user terminal, generates at least a set of information corresponding to the user terminal based on the request information; and

[0034] The message distribution module sends the information set back to the user terminal.

[0035] Embodiments of the present invention also provide a live message distribution device, comprising:

[0036] processor;

[0037] A memory in which executable instructions of the processor are stored;

[0038] The processor is configured to execute the steps of the above-described live message distribution method by executing the executable instructions.

[0039] Embodiments of the present invention also provide a computer-readable storage medium for storing a program that, when executed by a processor, implements the steps of the above-described live message distribution method.

[0040] The purpose of this invention is to provide a live message distribution method, system, device, and storage medium. By designing a live message distribution method that replaces the broadcaster's push mode with a user-end active pull mode, it avoids complex user-end connection management and message routing, reduces message loss rate, and persists messages only on the broadcaster's end, greatly reducing message persistence overhead. It also classifies live room messages and prioritizes sending important messages based on user requests, thereby improving the interactive experience of the live room. Attached Figure Description

[0041] Other features, objects, and advantages of the present invention will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings.

[0042] Figure 1 This is a flowchart of the live message distribution method of the present invention.

[0043] Figure 2 This is a flowchart of step S110 of the live message distribution method of the present invention.

[0044] Figure 3 This is a flowchart of step S120 of the first embodiment of the live message distribution method of the present invention.

[0045] Figure 4 This is a flowchart of step S130 of the first embodiment of the live message distribution method of the present invention.

[0046] Figure 5 This is a detailed flowchart of step S130 of the first embodiment of the live message distribution method of the present invention.

[0047] Figure 6 This is a flowchart of step S140 of the live message distribution method of the present invention.

[0048] Figure 7 This is a schematic diagram of the modules of the live message distribution system of the present invention.

[0049] Figure 8 This is a schematic diagram of the structure of the live message distribution device of the present invention.

[0050] Figure 9 This is a schematic diagram of the structure of a computer-readable storage medium according to an embodiment of the present invention. Detailed Implementation

[0051] The following specific examples illustrate the implementation methods of this application. Those skilled in the art can easily understand the other advantages and effects of this application from the content disclosed herein. This application can also be implemented or applied through other different specific embodiments, and various details in this application can be modified or changed according to different viewpoints and application systems without departing from the spirit of this application. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this application can be combined with each other.

[0052] The embodiments of this application will now be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily implement the application. This application may be embodied in many different forms and is not limited to the embodiments described herein.

[0053] In this application, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics represented in connection with that embodiment or example, which are included in at least one embodiment or example of this application. Furthermore, the specific features, structures, materials, or characteristics represented may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate different embodiments or examples represented in this application, as well as features of different embodiments or examples.

[0054] Furthermore, the terms "first" and "second" are used for illustrative purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the representation of this application, "multiple" means two or more, unless otherwise explicitly specified.

[0055] To clearly illustrate this application, devices unrelated to the description are omitted, and the same or similar constituent elements throughout the specification are given the same reference numerals.

[0056] Throughout this specification, when it is said that a device is "connected" to another device, this includes not only "direct connection" but also "indirect connection" by placing other components in between. Furthermore, when it is said that a device "comprises" a certain constituent element, unless otherwise stated otherwise, this does not exclude other constituent elements, but rather implies that other constituent elements may be included.

[0057] When we say that a device is "above" another device, this can mean that it is directly above the other device, or it can mean that other devices are present in between. Conversely, when we say that a device is "directly" "above" another device, there are no other devices present in between.

[0058] Although the terms first, second, etc., are used in some instances herein to refer to various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, first interface and second interface, etc., are used. Furthermore, as used herein, the singular forms “a,” “an,” and “the” are intended to also include the plural forms unless the context indicates otherwise. It should be further understood that the terms “comprising,” “including,” indicate the presence of features, steps, operations, elements, components, items, kinds, and / or groups, but do not exclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, components, items, kinds, and / or groups. The terms “or” and “and / or” as used herein are interpreted as inclusive, or mean any one or any combination thereof. Thus, “A, B, or C” or “A, B, and / or C” means “any one of: A; B; C; A and B; A and C; B and C; A, B, and C.” Exceptions to this definition will only occur if the combination of elements, functions, steps, or operations is inherently mutually exclusive in some way.

[0059] The technical terms used herein are for reference only to specific embodiments and are not intended to limit the scope of this application. The singular form used herein includes the plural form unless the statement explicitly indicates otherwise. The word "comprising" as used in the specification means to specify a particular characteristic, region, integer, step, operation, element, and / or component, and does not exclude the presence or addition of other characteristics, regions, integers, steps, operations, elements, and / or components.

[0060] Although not explicitly defined, all terms, including technical and scientific terms used herein, shall have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. Terms defined in commonly used dictionaries shall be further interpreted as having a meaning consistent with the relevant technical literature and the content of this present application, and shall not be over-interpreted as having an ideal or overly formulaic meaning unless otherwise defined.

[0061] Figure 1 This is a flowchart of the live message distribution method of the present invention. Figure 1 As shown, the live message distribution method of the present invention includes the following steps:

[0062] S110. Based on the received message from the user terminal, forward the message;

[0063] S120. Based on the received and forwarded messages, classify the messages and establish message queues according to the time sequence.

[0064] S130. Based on the received request information from the user terminal, generate at least the corresponding information set for the user terminal; and

[0065] S140. Feed back the information set to the user.

[0066] In a preferred embodiment, step S110 includes:

[0067] S111. The message receiving module includes a message sequence number generator. When a message is received from the user terminal, the message sequence number generator generates a message sequence number for each message and marks the message. The message sequence number increases sequentially according to the time order in which the message receiving module receives the messages.

[0068] S112. The message receiving module sends a combination of the message and the message sequence number to the message classification module, but is not limited to this.

[0069] In a preferred embodiment, step S120 includes:

[0070] S121. The message classification module stores the received messages in a cache queue;

[0071] S122. The message classification module divides the messages in the cache queue into three categories: broadcaster-sent messages, user-interactive messages, and user-non-interactive messages.

[0072] S123. Store the messages in the first message queue, the second message queue, and the third message queue in the message storage module according to the three categories, and delete the messages in the cache queue, but not limited to this.

[0073] In a preferred embodiment, step S130 includes:

[0074] S131. The user terminal requests a message from the message storage module and provides a first message sequence number and a user terminal identifier, wherein the first message sequence number is the largest message sequence number among the existing messages of the user terminal;

[0075] S132. Return messages from the first message queue in ascending order of message number, and return messages from the second message queue and the third message queue in descending order of message number, and establish an information set based on the returned messages;

[0076] S133. When the number of messages contained in the information set is equal to the preset value, or when the third message queue has been accessed, the process ends and returns, sending the information set and the user terminal identifier to the message distribution module, but this is not the only limitation.

[0077] In a preferred embodiment, step S120 includes:

[0078] The message classification module establishes a queue of messages according to their time sequence, and identifies the messages based on a trained semantic recognition neural network, adding semantic tags obtained from the identification, but not limited to this.

[0079] In a preferred embodiment, step S130 includes:

[0080] Based on the received request information from the user terminal, which includes at least the corresponding user terminal's feature tags and user terminal identifier, an information set for the corresponding user terminal is established based on the matching of the feature tags with the semantic tags of the message, but is not limited to this.

[0081] In a preferred embodiment, step S140 includes:

[0082] S141. The message distribution module receives the information set and the user terminal identifier from the message storage module;

[0083] S142. The message distribution module sends the information set to the corresponding user terminal based on the user terminal identifier, but is not limited to this.

[0084] This invention designs a live message distribution method that replaces the broadcaster's push mode with a user-driven pull mode, avoiding complex user-side connection management and message routing, reducing message loss rate, and persisting messages only on the broadcaster's side, greatly reducing message persistence overhead. It also classifies live room messages and prioritizes sending important messages based on user requests, improving the interactive experience of the live room.

[0085] Figure 2 This is a flowchart of step S110 of the live message distribution method of the present invention. Figure 3 This is a flowchart of step S120 of the first embodiment of the live message distribution method of the present invention. Figure 4 This is a flowchart of step S130 of the first embodiment of the live message distribution method of the present invention. Figure 5 This is a detailed flowchart of step S130 of the first embodiment of the live message distribution method of the present invention. Figure 6 This is a flowchart of step S140 of the live message distribution method of the present invention.

[0086] refer to Figures 2 to 6 The specific embodiments of the present invention are as follows:

[0087] First embodiment:

[0088] A live message distribution method according to the present invention includes the following steps:

[0089] Step 1: The message receiving module 51 forwards the message based on the received message from the user client. Specifically, when the broadcaster creates a live room, the message receiving module 51 creates a message sequence number generator. When the message receiving module 51 receives a message from the user client, the message sequence number generator generates a message sequence number (MessageId) for each message and labels the message. The message sequence number (MessageId) increments sequentially according to the time the message receiving module 51 receives the messages, thus arranging the messages on the broadcaster according to the order of receipt. Furthermore, the user client that sent the message appends a user client identifier (LocalId) to the message so that the system can identify the sender. At this point, a message contains at least three parts: the user client identifier (LocalId), the message sequence number (MessageId), and the message content (Value). Afterwards, the message receiving module 51 forwards the message to the message classification module 52 for classification.

[0090] The second step: The message classification module 52 classifies the received and forwarded messages and establishes a message queue based on the message sequence. Specifically, firstly, the message classification module 52 stores the received messages in a cache queue for subsequent classification, avoiding exceeding the classification capacity limit due to an excessive number of messages. Secondly, the message classification module 52 divides the messages in the cache queue into three categories: those sent by the broadcaster, those involving user interaction, and those not involving user interaction. Based on these categories, a priority is assigned to each message: Urgent, Common, and Disposable, with Urgent being the highest priority message that cannot be lost. Because live streaming involves various types of messages, including starting a live stream, ending a live stream, entering a live stream room, leaving a live stream room, text comments, likes, gifts, shares, purchasing, and raffles, different fields are defined for each type of message to provide users with diverse live streaming interactions. However, these messages have varying degrees of importance; not every user needs all the message content. Users typically only need the more important parts, such as messages related to the broadcaster. In this invention, broadcaster-issued instructions such as starting a live stream, ending a live stream, and initiating a lottery are categorized as important; user-initiated interactive messages such as comments and gift messages are categorized as ordinary; and user-initiated non-interactive messages such as liking, sharing, purchasing, entering the live stream, and leaving the live stream are categorized as disposable. Finally, this invention classifies messages according to the above classification rules, placing them into three categories: Urgent, Common, and Disposable, and storing them sequentially in the first, second, and third message queues of the message storage module 53. This invention relates to message persistence, where messages are stored in a queue structure. Specifically, a cache queue is created for each message category, and each cache queue consists of a SortSet and a HashSet. The SortSet's key and score are both set to MessageId, and the HashSet's key is the MessageId, with the value being the message content. Messages are written to the queue according to priority. The SortSet facilitates fast sorting and querying, while the HashSet facilitates fast access to the message content. Whenever a message is stored in a message queue, the message is deleted from the cache queue.

[0091] In practice, users' networks may be unstable and frequently disconnect. This can cause message pushes from the message server to the user to fail or be lost, potentially leading to users missing crucial messages such as lottery notifications, red envelope offers, and product push notifications – all critical messages in live streaming scenarios, and their loss is unacceptable. To avoid message loss, persistence is necessary. However, the number of concurrent users in live streams often exceeds the typical chat room limit of 2000. Therefore, XMPP's individual persistence storage for each user would incur significant overhead. Furthermore, the frequent entry and exit of users in live stream chat rooms further complicates persistence management. This invention, through the aforementioned process, ensures that all received user messages are stored only once in the system, greatly reducing message persistence overhead.

[0092] Step 3: The message storage module 53 generates a corresponding information set for the user based on the received request information from the user. First, the user requests a message from the message storage module 53, providing a first message sequence number (LastMessageId) and a user identifier (LocalId). The first message sequence number (LastMessageId) is the largest message sequence number among all message sequence numbers (MessageId) corresponding to existing messages on the user's device. When the user first retrieves a message, LastMessageId is 0. The user identifier (LocalId) is used to uniquely identify the user. Second, the message storage module 53 returns messages from the first message queue in ascending order of message sequence number, and then returns messages from the second and third message queues in descending order of message sequence number, building an information set based on the returned messages. Specifically, the message storage module 53 limits the number of messages retrieved at a time to LimitNum, meaning the user can retrieve a maximum of LimitNum messages at a time. The message storage module 53 first searches the first message queue, determining if the number of messages with sequence numbers greater than the first message sequence number LastMessageId is less than a preset value LimitNum. If so, it returns all messages with sequence numbers greater than the first message sequence number LastMessageId and continues searching the second message queue. Otherwise, it returns the preset value LimitNum messages with sequence numbers greater than the first message sequence number in ascending order of MessageId, and then stops returning messages. Specifically, it first checks if the SortSet of the first message queue, i.e., the Urgent queue, contains data with a Score greater than LastMessageId. It then retrieves data continuously in ascending order of Score(MessageId) and obtains the message content Value from the corresponding HashSet. The message storage module 53 then searches the second message queue, calculating the number of messages in the Common queue whose sequence numbers are less than the largest sequence number of messages in the returned Urgent queue. It then checks if the sum of this number and the number of messages already returned to the Urgent queue is less than a preset value LimitNum. If so, it returns all the aforementioned Common queue messages and continues searching the third message queue; otherwise, it returns the number of Common queue messages equal to the preset value LimitNum minus the number of messages already returned to the Urgent queue, and stops returning messages. Specifically, it uses a SortSet for quick sorting to retrieve the messages to be returned, and then uses a HashSet to access the message content Value. The message storage module 53 then searches the third message queue, the Disposable queue. The retrieval of this queue is similar to that of the Common queue; messages are only returned from the third queue in descending order of sequence number when the sum of the number of messages in the third queue that meet the requirements and the number of messages already returned is greater than the preset value LimitNum. Other details are omitted here.The above operations ensure that Urgent queue messages are not skipped. Finally, an information set is built based on all returned messages, and the information set and the user-end identifier LocalId are sent to the message distribution module 54.

[0093] The system of this invention employs the above process, achieving the goal of ensuring the delivery of important messages based on user-side requests. In live streaming scenarios, users generate a large number of interactive messages, such as likes and shares, which are distributed to viewers. These messages have a lower priority than important command messages, but their quantity is many times greater. When user interaction is frequent, command messages may queue and fail to be delivered in a timely manner. In this invention, the user-side uses message sequence numbers when pulling messages, ensuring that the server extracts messages from the most important queue in ascending order during the retrieval process. Furthermore, if there are still unretrieved messages in the important message queue, the other two priority queues can only retrieve messages with IDs smaller than the largest message ID in the already retrieved important queues. This ensures that every important message is retrieved, guaranteeing the delivery of important control commands during the live stream, improving the interactive experience in the live stream, saving user-side resource consumption, and increasing the message processing speed on the user-side. Message retrieval by the user-side also supports different user-sides implementing rate limiting based on their own circumstances.

[0094] Step 4: The message distribution module 54 sends the information set back to the user terminal. Specifically, the message distribution module 54 receives the information set and the user terminal identifier (LocalId) from the message storage module 53. Based on the user terminal identifier (LocalId), the message distribution module 54 sends the information set to the corresponding user terminal. The user terminal then displays the received message in the live broadcast room.

[0095] In existing technologies, after a user sends a message, it needs to go through server-side routing to find the server instance holding the user's connection to the live stream room. The message is first distributed to these nodes, and then these service instances distribute it to the user's TCP connection. The management and routing of user connections is complex. Furthermore, in reality, a user's network may not be disconnected but may be in a weak network state, with slow transmission speeds or high packet loss. If a large number of messages need to be distributed, the message service will send a large number of data packets to the user's TCP connection. Due to the low link transmission rate, data packets will accumulate. Increasing the buffer size can alleviate the problem of buffer overflow and data transmission failure, but this leads to excessive memory overhead. Moreover, increasing the buffer size does not fundamentally solve the problem; message persistence mechanisms are still needed, resulting in significant storage overhead. This invention replaces the server-pull mode with a user-client proactive retrieval mode. It establishes a connection with the server through short or long connections and proactively initiates message retrieval requests, thereby avoiding complex user connection management and message routing. This makes the overall system more stable and reduces the probability of message loss. The user-client proactive retrieval also supports rate limiting for different user clients based on their own circumstances.

[0096] In addition, the live message distribution method of this embodiment may also include a fifth step: the user terminal calculates a new LastMessageId based on the received message, and then repeats the first to fourth steps.

[0097] Second Embodiment

[0098] Another live message distribution method of the present invention is also divided into four steps, wherein the first and fourth steps are the same as those in the first embodiment, and will not be repeated here. Only the second and third steps will be elaborated here.

[0099] Step 2: The message classification module 52 classifies the received and forwarded messages and establishes a message queue based on the time sequence. Specifically, the message classification module 52 establishes a queue based on the time sequence of messages. At this time, all messages are stored in the same message queue, and all message distribution is retrieved from this queue. The message queue can also consist of a SortSet and a HashSet, the same as in the first embodiment, and will not be described again here. After the messages are stored, a trained semantic recognition neural network is used to identify the messages and add semantic tags obtained from the identification. The semantic tags are used to determine the type of the message, and can be classified using the same dimensions as user profiles, such as language-based emotion classification, purchasing power-based classification, interaction activity-based classification, etc. After classification, all messages in the message queue contain at least one semantic tag.

[0100] Step 3: The message storage module 53 generates a corresponding information set for the user based on the received request information from the user. Specifically, the request information includes at least the corresponding user's feature tags and the user's identifier LocalId. The user's features are the user profile, containing multiple dimensions of features, and the user's identifier LocalId is used to uniquely identify a user. The information set for the corresponding user is established based on the matching of the feature tags and the semantic tags of the messages. Specifically, the matching degree between the feature tags and the semantic tags of the messages can be calculated. When the matching degree is greater than a threshold, messages with that semantic tag are returned, and an information set is established. Ultimately, the information set contains all messages corresponding to the semantic tags related to a user's feature tags. This allows the system to return different information sets based on the user profile of each user, and the messages in these information sets are more closely matched to the user, thereby improving the user experience.

[0101] Figure 7 This is a schematic diagram of the modules of the live message distribution system of the present invention. For example... Figure 7 As shown, embodiments of the present invention also provide a live message distribution system for implementing the above-described live message distribution method. The live message distribution system includes:

[0102] The message receiving module 51 forwards the message based on the message received from the user terminal;

[0103] The message classification module 52 classifies messages based on received and forwarded messages, and establishes message queues for messages according to their time sequence.

[0104] The message storage module 53 generates a corresponding information set for the user based on the received request information from the user.

[0105] The message distribution module 54 feeds back the information set to the user.

[0106] In a preferred embodiment, the message receiving module 51 is configured to include a message sequence number generator. When a message is received from a user terminal, the message sequence number generator generates a message sequence number for each message and marks the message. The message sequence number increments sequentially according to the time order in which the message receiving module receives the messages. The combination of the message and the message sequence number is sent to the message classification module.

[0107] In a preferred embodiment, the message classification module 52 is configured to store the received messages in a cache queue; classify the messages in the cache queue into three categories: broadcaster-sent messages, user-interactive messages, and user-non-interactive messages; store the messages in the first message queue, second message queue, and third message queue in the message storage module 53 in sequence according to the three categories, and delete the messages in the cache queue.

[0108] In a preferred embodiment, the message storage module 53 is configured to: request a message from the user terminal and provide a first message sequence number and a user terminal identifier, wherein the first message sequence number is the largest message sequence number among the existing messages of the user terminal; return messages from the first message queue in ascending order of message sequence number, and return messages from the second message queue and the third message queue in descending order of message sequence number, and establish an information set based on the returned messages; when the number of messages contained in the information set is equal to a preset value, or when the third message queue has been accessed completely, the return ends, and the information set and the user terminal identifier are sent to the message distribution module 54.

[0109] In a preferred embodiment, the message classification module 52 is further configured to establish a queue of messages according to time sequence, identify messages based on a trained semantic recognition neural network, and add semantic tags obtained from the identification.

[0110] In a preferred embodiment, the message storage module 53 is further configured to establish an information set for the corresponding user terminal based on the received request information from the user terminal, wherein the request information includes at least the feature tags and user terminal identifier of the corresponding user terminal, and according to the matching of the feature tags with the semantic tags of the message.

[0111] In a preferred embodiment, the message distribution module 54 is configured to receive an information set and a user terminal identifier from the message storage module; and send the information set to the corresponding user terminal based on the user terminal identifier.

[0112] In a preferred embodiment, the live message distribution system of the present invention further includes an event statistics module 55, which is configured to perform statistics on live interaction and send the statistics results to the broadcaster. The statistics include at least the following: number of likes, number of comments, number of purchases, number of views, and popularity.

[0113] This invention provides a live message distribution system that replaces the broadcaster's push mode with a user-driven pull mode for live message distribution. This avoids complex user-end connection management and message routing, reduces message loss rate, and persists messages only on the broadcaster's end, greatly reducing message persistence overhead. The system also classifies live room messages and prioritizes sending important messages based on user requests, thereby improving the interactive experience in the live room.

[0114] This invention also provides a live message distribution device, including a processor and a memory storing executable instructions for the processor. The processor is configured to execute steps of a live message distribution method via the executable instructions.

[0115] As shown above, this embodiment of a live message distribution device, by designing a live message distribution method that replaces the broadcaster's push mode with a user-end active pull mode, avoids complex user-end connection management and message routing, reduces message loss rate, and at the same time persists messages only on the broadcaster's end, greatly reducing message persistence overhead, classifies live room messages, and prioritizes sending important messages based on user requests, thereby improving the interactive experience of the live room.

[0116] Those skilled in the art will understand that various aspects of the present invention can be implemented as systems, methods, or program products. Therefore, various aspects of the present invention can be specifically implemented in the following forms: a completely hardware implementation, a completely software implementation (including firmware, microcode, etc.), or a combination of hardware and software aspects, collectively referred to herein as a "circuit," "module," or "platform."

[0117] Figure 8 This is a schematic diagram of the live message distribution device of the present invention. See below for reference. Figure 8 To describe an electronic device 600 according to this embodiment of the present invention. Figure 8 The electronic device 600 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.

[0118] like Figure 8 As shown, the electronic device 600 is presented in the form of a general-purpose computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different platform components (including storage unit 620 and processing unit 610), a display unit 640, etc.

[0119] The storage unit stores program code, which can be executed by the processing unit 610 to perform the steps described in the above-described section on the electronic prescription transfer processing method according to various exemplary embodiments of the present invention. For example, the processing unit 610 can perform actions such as... Figure 1 The steps are shown in the figure.

[0120] Storage unit 620 may include a readable medium in the form of a volatile storage unit, such as random access memory (RAM) 6201 and / or cache memory 6202, and may further include a read-only memory (ROM) 6203.

[0121] Storage unit 620 may also include a program / utility 6204 having a set (at least one) program module 6205, such program module 6205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0122] Bus 630 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the multiple bus structures.

[0123] Electronic device 600 can also communicate with one or more external devices 700 (e.g., keyboard, pointing device, Bluetooth device, etc.), and with one or more devices that enable a user to interact with electronic device 600, and / or with any device that enables electronic device 600 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 650. Furthermore, electronic device 600 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 660. Network adapter 660 can communicate with other modules of electronic device 600 via bus 630. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage platforms.

[0124] This invention also provides a computer-readable storage medium for storing a program, which, when executed, implements the steps of a live message distribution method. In some possible implementations, various aspects of this invention can also be implemented as a program product comprising program code that, when run on a terminal device, causes the terminal device to perform the steps described in the above-described electronic prescription processing method section of this specification according to various exemplary embodiments of the invention.

[0125] As shown above, when the program on the computer-readable storage medium of this embodiment is executed, it designs a live message distribution method that replaces the broadcaster's push mode with a user-end active pull mode, thereby avoiding complex user-end connection management and message routing, reducing message loss rate, and persisting messages only on the broadcaster's end, greatly reducing message persistence overhead, classifying live room messages, and prioritizing the sending of important messages based on user requests, thereby improving the interactive experience of the live room.

[0126] Figure 9 This is a schematic diagram of the structure of a computer-readable storage medium according to an embodiment of the present invention. (Reference) Figure 9 As shown, a program product 800 for implementing the above-described method according to an embodiment of the present invention is described. This product may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, the readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.

[0127] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0128] Computer-readable storage media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable storage medium may also be any readable medium other than a readable storage medium that can transmit, propagate, or transfer a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0129] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0130] In summary, the purpose of this invention is to provide a live message distribution method, system, device, and storage medium. By designing a live message distribution method that replaces the broadcaster's push mode with a user-end active pull mode, it avoids complex user-end connection management and message routing, reduces message loss rate, and persists messages only on the broadcaster's end, greatly reducing message persistence overhead. It also classifies live room messages and prioritizes sending important messages based on user requests, thereby improving the interactive experience of the live room.

[0131] The above description, in conjunction with specific preferred embodiments, provides a further detailed explanation of the present invention. It should not be construed that the specific implementation of the present invention is limited to these descriptions. For those skilled in the art, various simple deductions or substitutions can be made without departing from the concept of the present invention, and all such modifications and substitutions should be considered within the scope of protection of the present invention.

Claims

1. A method for distributing live broadcast messages, characterized in that, Includes the following steps: Based on the message received from the user terminal, forward the message; Based on the received forwarded messages, the messages are classified and message queues are established according to the time sequence of the messages; The step of classifying the received forwarded messages and establishing message queues according to their time sequence includes: the message classification module storing the received messages in a cache queue; the message classification module classifying the messages in the cache queue into three categories: broadcaster-sent messages, user-interactive messages, and user-non-interactive messages; storing the messages in the three categories sequentially in the first message queue, the second message queue, and the third message queue in the message storage module, and deleting the messages from the cache queue; Based on the received request information from the user terminal, at least based on the request information, an information set corresponding to the user terminal is generated; the step of generating the information set corresponding to the user terminal based on the received request information from the user terminal includes: the user terminal requests the message from the message storage module and provides a first message sequence number and a user terminal identifier, wherein the first message sequence number is the largest message sequence number among the existing messages of the user terminal; the messages are returned from the first message queue in ascending order of the message sequence number, and the messages are returned from the second message queue and the third message queue in descending order of the message sequence number, and the information set is established based on the returned messages; the return ends when the number of messages contained in the information set is equal to a preset value, or when the third message queue has been accessed completely, and the information set and the user terminal identifier are sent to the message distribution module; The information set is then fed back to the user terminal.

2. The live message distribution method as described in claim 1, characterized in that, The step of forwarding the message based on the received message from the user includes: The message receiving module includes a message sequence number generator. When a message is received from a user terminal, the message sequence number generator generates a message sequence number for each message and marks the message. The message sequence number increases sequentially according to the time order in which the message receiving module receives the messages. The message receiving module sends the combination of the message and the message sequence number to the message classification module.

3. The live message distribution method as described in claim 1, characterized in that, The step of classifying the received forwarded messages and establishing message queues for the messages according to their time sequence includes: The message classification module establishes a queue of messages according to their time sequence, identifies the messages based on a trained semantic recognition neural network, and adds semantic tags obtained from the identification.

4. The live message distribution method as described in claim 3, characterized in that, The step of generating an information set corresponding to the user based on the received request information from the user includes: Based on the received request information from the user terminal, the request information includes at least a feature tag corresponding to the user terminal and a user terminal identifier. The information set corresponding to the user terminal is established based on the matching of the feature tag with the semantic tag of the message.

5. The live message distribution method as described in claim 1, characterized in that, The step of feeding back the information set to the user terminal includes: The message distribution module receives the information set and the user terminal identifier from the message storage module; The message distribution module sends the information set to the corresponding user terminal based on the user terminal identifier.

6. A live message distribution system for implementing the live message distribution method of claim 1, characterized in that, include: The message receiving module forwards the message based on the message received from the user terminal; The message classification module classifies the received and forwarded messages and establishes message queues for the messages according to their time sequence. The step of classifying the received forwarded messages and establishing message queues according to their time sequence includes: the message classification module storing the received messages in a cache queue; the message classification module classifying the messages in the cache queue into three categories: broadcaster-sent messages, user-interactive messages, and user-non-interactive messages; storing the messages in the three categories sequentially in the first message queue, the second message queue, and the third message queue in the message storage module, and deleting the messages from the cache queue; A message storage module generates an information set corresponding to the user terminal based on a received request from the user terminal. This generation of the information set includes: the user terminal requesting a message from the message storage module, providing a first message sequence number and a user terminal identifier, wherein the first message sequence number is the largest message sequence number among the existing messages on the user terminal; returning messages from the first message queue in ascending order of message sequence number, and then returning messages from the second message queue and the third message queue in descending order of message sequence number, and establishing the information set based on the returned messages; ending the return process when the number of messages in the information set equals a preset value, or when the third message queue has been fully accessed, and sending the information set and the user terminal identifier to the message distribution module. The message distribution module sends the information set back to the user terminal.

7. A live message distribution device, characterized in that, include: processor; A memory in which executable instructions of the processor are stored; The processor is configured to perform the steps of the live message distribution method according to any one of claims 1 to 5 by executing the executable instructions.

8. A computer-readable storage medium for storing a program, characterized in that, When the program is executed by the processor, it implements the steps of the live message distribution method according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • Display method, device and equipment for interactive messages in live broadcasting room and storage medium

    CN115643463A