US20210036907A1 - Methods and apparatuses for pushing a message - Google Patents
Methods and apparatuses for pushing a message Download PDFInfo
- Publication number
- US20210036907A1 US20210036907A1 US17/074,360 US202017074360A US2021036907A1 US 20210036907 A1 US20210036907 A1 US 20210036907A1 US 202017074360 A US202017074360 A US 202017074360A US 2021036907 A1 US2021036907 A1 US 2021036907A1
- Authority
- US
- United States
- Prior art keywords
- message
- information
- link
- pushed
- registered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000015654 memory Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H04L29/08693—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- H04L29/08—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- H04L51/14—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H04L51/32—
-
- H04L51/36—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H04L67/26—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Definitions
- the present application relates to message pushing technologies, and more particularly, to message pushing methods and apparatuses.
- message pushing techniques may have been applied to numerous scenarios.
- data may be actively pushed to a mobile device from a server.
- Java platform enterprise edition (Java EE) application data may be actively pushed from one application system to another application system.
- the present disclosure provides message pushing methods and apparatuses to solve deficiency in the related art.
- the present disclosure is directed to a method for pushing a message.
- the method may include extracting, when the message to be pushed is detected, user information and application information in the message.
- the method may also include acquiring link information corresponding to the user information and the application information.
- the method may further include determining registered devices of the user information and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- the method may include adding, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device.
- the identification information and message contents contained in the message may be extracted, and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- the present disclosure is directed to another method for pushing a message.
- the method may include receiving a pushed message.
- the method may also include extracting message contents and identification information contained in the pushed message.
- the method may further include determining a target application corresponding to each piece of the identification information, and sending the message contents to each corresponding target application.
- the present disclosure is directed to an apparatus for pushing a message.
- the apparatus may include an extraction unit configured to extract, when the message to be pushed is detected, user information and application information in the message.
- the apparatus may also include an acquisition unit configured to acquire link information corresponding to the user information and the application information.
- the apparatus may further include a determination unit configured to determine registered devices of the user information and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- the apparatus may include an adding unit configured to add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device. The identification information and message contents contained in the message may be extracted, and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- the present disclosure is directed to another apparatus for pushing a message.
- the apparatus may include a receiving unit configured to receive a pushed message.
- the apparatus may also include an extraction unit configured to extract message contents and identification information contained in the pushed message.
- the apparatus may further include a determining and sending unit configured to determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- Message pushing methods and apparatuses in the present disclosure may include acquiring, when a message to be pushed is detected, user information and application information in the message and the corresponding link information to learn real-time, accurate login conditions of the user information.
- a message to be pushed By adding identification information about a plurality of registered applications corresponding to the registered device to the message, only one message may need to be sent to the same registered device. All the plurality of registered applications may receive their corresponding message contents. It may be helpful to decrease the data volume of messages to be pushed, and may reduce power consumption of the registered device.
- FIG. 1 illustrates a schematic structural diagram of an exemplary real-time message platform, according to some embodiments of the present disclosure.
- FIG. 2 is a flow chart of an exemplary method for pushing a message, according to some embodiments of the present disclosure.
- FIG. 3 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure.
- FIG. 4 illustrates a processing flow chart of exemplary client registration, according to some embodiments of the present disclosure.
- FIG. 5 shows a processing flow chart of exemplary client logout, according to some embodiments of the present disclosure.
- FIG. 6 is a processing flow chart of an exemplary abnormal disconnection of a client, according to some embodiments of the present disclosure.
- FIG. 7 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure.
- FIG. 8 shows a schematic diagram of an exemplary merging process, according to some embodiments of the present disclosure.
- FIG. 9 is a schematic diagram of an exemplary grouping process, according to some embodiments of the present disclosure.
- FIG. 10 illustrates a schematic structural diagram of an exemplary electronic device, according to some embodiments of the present disclosure.
- FIG. 11 is a block diagram of an exemplary apparatus for pushing a message, according to some embodiments of the present disclosure.
- FIG. 12 shows a schematic structural diagram of another exemplary electronic device, according to some embodiments of the present disclosure.
- FIG. 13 is a block diagram of another exemplary apparatus for pushing a message, according to some embodiments of the present disclosure.
- FIG. 1 illustrates a schematic structural diagram of an exemplary real-time message platform, according to some embodiments of the present disclosure.
- a service message from a service server may be processed by a real-time message platform and may be pushed to a client.
- FIG. 2 is a flow chart of an exemplary method for pushing a message, according to some embodiments of the present disclosure. The method may be applied to a message center (MSCenter) shown in FIG. 1 . The method may include the following steps:
- Step 202 Extract, when the message to be pushed is detected, user information and application information in the message.
- Step 204 Acquire link information corresponding to the user information and the application information.
- the device may establish a link with a client access server (MSNode), and may initiate a registration request based on the link.
- the registration request may contain user information and application information.
- the MSNode may also read link information from the link.
- the MSNode may send the link information, the application information, and the user information to a client link management center (CMCenter) for storing the correspondence between them.
- CMCenter client link management center
- the user information may be information representing the user identity, such as user account information for login.
- the application information may be information representing a corresponding application program on the device, such as an application ID.
- the link information may correspond to information about a link that may be established with the MSNode and/or information about a device corresponding to the link, such as a link ID and/or a device ID. Each device may establish a plurality of links with the MSNode.
- Step 206 Determine registered devices of a user account and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- the MSCenter may acquire, from each message to be pushed, user information about one or more users and one or more pieces of application information corresponding to each piece of the user information to form one or more “user information—application information” pairs.
- the method may also include determining the real-time login state of the user account.
- the MSCenter acquires, according to a “user information—application information” pair, one corresponding piece of link information or a plurality of pieces of identical link information from the CMCenter, it may indicate that the user may log in by the user account on one application program on one device.
- the MSCenter acquires, according to a “user information—application information” pair, a corresponding plurality of pieces of different link information from the CMCenter, it may indicate that the user may log in by the same user account on the same application program on a plurality of devices.
- the MSCenter acquires, according to a plurality of “user information—application information” pairs corresponding to the same user account, the corresponding one piece of link information or a plurality of pieces of identical link information from the CMCenter, it may indicate that the user may log in by the same user account on a plurality of application programs on one device.
- Step 208 Add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device.
- the identification information and message contents contained in the message may be extracted and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- the identification information about the registered applications may be contained in the corresponding application information.
- the identification information may be the application IDs or other types of identification to distinguish the plurality of registered applications.
- FIG. 3 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. As shown in FIG. 3 , the method may be applied to a terminal or a device. The method may include the following steps:
- Step 302 Receive a pushed message.
- the pushed message in step 302 may be the message to be pushed shown in FIG. 2 .
- Step 304 Extract message contents and identification information contained in the pushed message.
- Step 306 Determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- the methods for pushing a message in the present disclosure may include acquiring, when a message to be pushed is detected, user information and application information in the message and the corresponding link information to learn real-time, accurate login conditions of a user account.
- acquiring By adding identification information about a plurality of registered applications corresponding to the registered device to the message, only one message may need to be sent to the same registered device. All the plurality of registered applications may receive their corresponding message contents. It may be helpful to decrease the data volume of messages to be pushed, and may reduce power consumption of the registered device.
- the present disclosure is also directed to methods for a plurality of devices.
- the message to be pushed may be respectively pushed to each of the registered devices.
- the MSCenter may duplicate the message to obtain a plurality of messages that may be one-to-one corresponding to the plurality of registered devices.
- the MSCenter may also acquire a node ID of a client access server corresponding to each of the registered devices, and may add each node ID to each corresponding message to be pushed accordingly.
- the MSCenter may add these messages each containing the node ID to a message pushing queue. Finally, the MSNode may push these messages in the message pushing queue.
- a user may log in by an account respectively via applications on a plurality of devices.
- the plurality of devices may all receive the corresponding pushing messages to ensure that the user may be able to view the pushed message via any one of the devices.
- FIGS. 4-6 illustrate several exemplary processes, including a client registration process, a corresponding logout process, and an abnormal disconnection process. These processes are further described below.
- FIG. 4 illustrates a processing flow chart of exemplary client registration, according to some embodiments of the present disclosure.
- a registration procedure may include the following steps:
- Step 402 Initiate, by a client, a registration request to a current MSNode node.
- Step 404 Parse, by the current MSNode node, a protocol of the registration request.
- Step 406 Perform, by the current MSNode node based on a protocol parsing result, identity authentication and authorization on a user account that initiates the registration request.
- Step 408 Control a number of connections on the current MSNode node that processes the registration request.
- the MSNode may be a server cluster containing a plurality of nodes. Each MSNode node may be configured with a preset number of connections. If the current MSNode node detects that the number of established connections exceeds the preset number of connections, the current registration request may be allocated to another idle MSNode node.
- the current MSNode node may return a route instruction to the client to guide and re-connect the client to another idle MSNode node.
- Step 410 Acquire, by the current MSNode node, user information and/or application information from the registration request, and extract link information from an established link.
- Step 412 A Send, by the current MSNode node, the user information, the application information, and the link information to a CMCenter.
- Step 414 A Update data in accordance with the received user information, application information, and link information if client registration information about the user account exists in the CMCenter. Register as new client registration information if client registration information about the user account does not exist.
- Step 416 A Store, by the CMCenter, the client registration information in a link management database or a distributed cache system.
- Step 412 B Send, by the current MSNode node, the user information and the application information to the MSCenter.
- Step 414 B Acquire, by the current MSCenter node, the corresponding off-line data in accordance with the user information and the application information.
- Step 416 B Clean, by the current MSCenter node, the off-line data.
- Step 418 Generate, by the current MSCenter node, a message to be pushed from the processed off-line data, and add the message to a message pushing queue.
- Step 420 Acquire, by the current MSNode node, the message to be pushed from the message pushing queue, and push the message to the client.
- FIG. 5 shows a processing flow chart of exemplary client logout, according to some embodiments of the present disclosure.
- the client logout procedure may include the following steps:
- Step 502 Initiate, by a client, a logout request to a current MSNode node.
- Step 504 Parse, by the current MSNode node, a protocol of the received logout request.
- Step 506 Perform, by the current MSNode node based on a protocol parsing result, identity authentication and authorization on the client.
- Step 508 Acquire, by the current MSNode node, user information and application information contained in the logout request, and delete all links established between the client and the current MSNode from a link manager.
- Step 510 Send, by the current MSNode node, a link logout command to a CMCenter.
- Step 512 Delete, by the CMCenter, connection information established between the current MSNode and the client, including deleting the corresponding link information from a database or a distributed cache.
- the client may be a device on which the client program is installed.
- FIG. 6 is a processing flow chart of an exemplary abnormal disconnection of a client, according to some embodiments of the present disclosure. As shown in FIG. 6 , the abnormal disconnection procedure may include the following steps:
- Step 602 A client being abnormally disconnected from an MSNode node.
- Step 604 Capture, by the current MSNode node, abnormal disconnection information, and send a client link disconnection event.
- Step 606 Acquire, in response to the client link disconnection event, link information registered by the client with the current MSNode from a link manager of the current MSNode node, and delete the link information.
- Step 608 Send, by the current MSNode node, a link logout command to a CMCenter.
- Step 610 Delete, by the C MCenter, connection information established between the current MSNode and the client, including deleting the corresponding link information from a database or a distributed cache.
- the CMCenter may record the user information, the application information, and the link information as client registration information.
- FIG. 7 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. As shown in FIG. 7 , when the real-time message platform shown in FIG. 1 may be used for pushing a message, the method may include the following steps:
- Step 702 Receive, by a message agent center (MSAgent), a service application message delivered by a service server, and process, re-combine, and fill in the message in accordance with message header information in the message.
- MSAgent message agent center
- Step 704 Generate, by the MSAgent, a message to be scheduled based on the processed, re-combined, and filled-in message, and add the message to a message scheduling queue.
- Step 706 Monitor, by a message center (MSCenter), whether a consumable message exists in the scheduling queue.
- MSCenter message center
- Step 708 Acquire, by the MSCenter, the consumable message if the consumable message exists in the scheduling queue.
- Step 710 Clean, by the MSCenter, the message.
- Step 712 Acquire, by the MSCenter, user information and application information from a message header of the message.
- Step 714 Acquire, by the MSCenter, the corresponding link information from a client link management center (CMCenter) in accordance with the acquired user information and application information.
- CMCenter client link management center
- the link information may be stored in client registration information in a database or a distributed cache by the CMCenter.
- Step 716 Merge or group, by the MSCenter, the messages in accordance with the user information, the application information, and the link information.
- the merging process and the grouping process above may be applied to different scenarios.
- the two processes are described below.
- the merging process may be performed on the messages so that only one message may need to be pushed to the device.
- the plurality of applications may acquire the corresponding message contents accordingly. It may decrease the data volume of pushed messages, and may reduce power consumption of the device. Especially for a mobile terminal device, this method may be helpful to reduce the data traffic consumption and prolong the standby time.
- FIG. 8 shows a schematic diagram of an exemplary merging process, according to some embodiments of the present disclosure.
- a user may use the same user account, and may respectively log in on an application A, an application B, and an application C on a device 1 .
- the MSCenter may further configured to determine that the same user account corresponds to device 1 and application A, application B, and application C on device 1 . This is the scenario where a plurality of applications correspond to the same device.
- the MSCenter may be configured to extract IDs of the application A, the application B, and the application C from link metadata information, such as application ID 1 , application ID 2 , and application ID 3 .
- the MSCenter may also be configured to add all the ID information to the same message, and add the message to a message pushing queue. After acquiring the message from the message pushing queue, the MSNode may be configured to directly send the message to device 1 .
- device 1 may be configured to acquire the ID information, i.e., application ID 1 , application ID 2 , and application ID 3 , and message contents contained in the received message by parsing the received message.
- Device 1 may also configured to send the message contents to application A, application B, and application C corresponding to application ID 1 , application ID 2 , and application ID 3 , respectively.
- the method may need only one message to be pushed. All the applications may obtain the corresponding message contents accordingly. It may effectively decrease the data volume of messages to be pushed, especially when the device 1 may be a mobile device. As a result, the data traffic consumption may be reduced accordingly. Moreover, message pushing may be performed directly via only one link with the MSNode. It may reduce power consumption of the device 1 , and may also save electric quantity of power supply.
- the grouping process on messages may be performed so that each of the devices may receive the same pushed message.
- the user may be able to read the corresponding pushed message via any one of the devices. It may be helpful to avoid missing the message.
- FIG. 9 is a schematic diagram of an exemplary grouping process, according to some embodiments of the present disclosure.
- a user may use the same user account to log in on the same application A on a device 1 , a device 2 and a device 3 , respectively.
- the MSCenter may also be configured to determine that the same user account corresponds to the application A on the device 1 , the device 2 and the device 3 . This is the scenario where a plurality of devices may correspond to the same application.
- the MSCenter may take each device as a group, may divide one message to be pushed into a plurality of messages that are one-to-one corresponding to the plurality of devices, and may push the plurality of messages via an MSNode.
- the MSCenter may determine an MSNode node corresponding to each of the devices in accordance with link information.
- the device 1 may correspond to an MSNode node 1
- the device 2 may correspond to an MSNode node 2
- the device 3 may correspond to an MSNode node 3 .
- An ID of the MSNode node 1 , an ID of the MSNode node 2 , and an ID of the MSNode node 3 may be respectively added to their corresponding messages to be pushed.
- the messages to be pushed may be added to a message pushing queue.
- Each of the MSNode nodes may select the corresponding message to be pushed from the message pushing queue in accordance with the ID thereof and may perform a pushing operation, such as pushing the corresponding message to the device 2 via the MSNode node 2 or pushing the corresponding message to the device 3 via the MSNode node 3 .
- step 716 After the message merging/grouping of step 716 , the following steps can be performed:
- Step 718 Add, by the MSCenter, a message selector path into the message, e.g., a node ID of a client access server (MSNode) for pushing the message, in accordance with the link information.
- a message selector path into the message, e.g., a node ID of a client access server (MSNode) for pushing the message, in accordance with the link information.
- Step 720 Add, by the MSCenter, the message to a pushing queue.
- Step 722 Monitor, by the MSNode, whether a consumable message exists in the pushing queue. If a consumable message exists in the pushing queue, extract the corresponding message from the pushing queue.
- the MSNode may generally contain a plurality of nodes, and each node may have a corresponding unique ID. By detecting a node ID contained in each message in the pushing queue, the message may be extracted and processed by the corresponding node.
- Step 724 Acquire, by the MSNode, the link information from the extracted message, and read a link connection instance corresponding to the link information from a local link manager.
- Step 726 Encapsulate, by the MSNode, the link connection instance and the message content in the message into a pushing event, and broadcast it.
- Step 728 Push, by a local pushing event listener of the MSNode, the message content to the client using the corresponding link connection instance after receiving the broadcast pushing event.
- Step 730 Return, by the client, an acknowledgment (ACK) after receiving the pushed message content.
- ACK acknowledgment
- Step 732 Perform, by the MSNode, a certain process in accordance with a receiving condition of the ACK.
- a re-sending operation may be performed in step 732 .
- the message may be sent to a failure processing queue.
- a failure message processor may perform a grading process on messages in accordance with a type of the failure queue. For example, for a Front type queue, the message re-sending may be attempted. Messages in a Backend queue may be recovered manually to the Front queue, or may be re-sent directly by a manual trigger. Messages in a dead letter queue (DLQ) may only be re-sent by a manual trigger.
- DLQ dead letter queue
- FIG. 10 illustrates a schematic structural diagram of an exemplary electronic device corresponding to an MSCenter, according to some embodiments of the present disclosure.
- the electronic device may include a processor, an internal bus, a network interface, a memory, and a non-volatile memory.
- the electronic device may also include additional hardware required by other services.
- the processor may be configured to read the corresponding computer program from the non-volatile memory into the memory for execution.
- the processor at the logical level may be configured to be an apparatus for pushing a message.
- the present disclosure does not exclude any other implementations, such as a logical device or a method combining hardware and software.
- the execution entities of the following procedures may not be limited to various logical units, and may also be hardware or a logical device.
- FIG. 11 is a block diagram of an exemplary apparatus for pushing a message, according to some embodiments of the present disclosure.
- an apparatus for pushing a message may include an extraction unit, an acquisition unit, a determination unit and a pushing unit.
- the extraction unit may be configured to extract, when the message to be pushed is detected, user information and application information in the message.
- the acquisition unit may be configured to acquire link information corresponding to the user information and the application information.
- the determination unit may be configured to determine registered devices of a user account and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- the adding unit may be configured to add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device.
- the identification information and message contents contained in the message may be extracted and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- the apparatus for pushing the message may further include a pushing unit configured to push, when a plurality of registered devices corresponding to the user account exist, the message to each registered device.
- the pushing unit may be configured to duplicate the message to obtain a plurality of messages corresponding to the plurality of registered devices.
- the pushing unit may also be configured to acquire a node identity (ID) of a client access server corresponding to each registered device, and add each node ID to each corresponding message.
- the pushing unit may further be configured to add the plurality of messages each containing the node ID to a message pushing queue.
- the acquisition unit may be configured to acquire, from a client link management center, link information corresponding to the user information and the application information.
- the link information may be acquired from a link established with a device when the client access server registers the device.
- FIG. 12 shows a schematic structural diagram of another exemplary electronic device, according to some embodiments of the present disclosure.
- the electronic device may include a processor, an internal bus, a network interface, a memory and a non-volatile memory.
- the electronic device may also include additional hardware required by other services.
- the processor may read the corresponding computer program from the non-volatile memory into the memory for execution.
- the processor at the logical level may be configured to form an apparatus for pushing a message.
- the present disclosure does not exclude any other implementations, such as a logical device or a method combining hardware and software.
- the execution entities of the following processing procedure may not be limited to various logical units, and may also be hardware or a logical device.
- FIG. 13 is a block diagram of another exemplary apparatus for pushing a message, according to some embodiments of the present disclosure.
- an apparatus for pushing a message may include a receiving unit, an extraction unit, and a sending unit.
- the receiving unit may be configured to receive a pushed message.
- the extraction unit may be configured to extract message contents and identification information contained in the pushed message.
- the determining and sending unit may be configured to determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- a computing device may include one or more processors (CPUs), an input/output interface, a network interface and a memory.
- the memory may include a non-permanent memory, a random access memory (RAM) and/or a non-volatile memory, such as a read-only memory (ROM) or flash memory (flash RAM), in computer-readable media.
- RAM random access memory
- ROM read-only memory
- flash RAM flash memory
- the memory may be an example of the computer-readable media.
- the computer-readable media may include permanent and non-permanent, removable and non-removable media and may realize information storage with any method or technology.
- the information may be a computer-readable instruction, data structure, program module or other data.
- the examples of computer storage media may include but are not limited to a phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memories (RAMs), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disk read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette tape, magnetic tape and magnetic disk storage or other magnetic storage devices or any other non-transmission media, which can be used to store information that can be accessed by a computing device.
- the computer-readable media do not include transitory media, such as modulated data signals and carriers.
- the terms “include,” “comprise,” or any other variations thereof are intended to cover a non-exclusive inclusion. Therefore, in the context of a process, method, merchant, or device that includes a series of elements, the process, method, merchant, or device may not only include such elements, but may also include other elements not specified explicitly, or may also include inherent elements of the process, method, merchant, or device. If there are no more limitations, elements defined by “comprising a” do not exclude the situation where other identical elements exist in the process, method, merchant or device including the elements.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- This application is a continuation of U.S. patent Ser. No. 15/675,208, filed on Aug. 11, 2017, which is based upon and claims priority to International Application No. PCT/CN2016/073275, filed on Feb. 3, 2016, which claims the benefit of priority to Chinese Application No. 201510076896.6, filed Feb. 12, 2015, all of which are incorporated herein by reference in their entireties.
- The present application relates to message pushing technologies, and more particularly, to message pushing methods and apparatuses.
- With continuous development of communication technologies, message pushing techniques may have been applied to numerous scenarios. For example, in a mobile client application, data may be actively pushed to a mobile device from a server. As another example, in a Java platform enterprise edition (Java EE) application, data may be actively pushed from one application system to another application system.
- The present disclosure provides message pushing methods and apparatuses to solve deficiency in the related art.
- In some aspects, the present disclosure is directed to a method for pushing a message. The method may include extracting, when the message to be pushed is detected, user information and application information in the message. The method may also include acquiring link information corresponding to the user information and the application information. The method may further include determining registered devices of the user information and registered applications on each registered device in accordance with the user information, the application information, and the link information. In addition, the method may include adding, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device. The identification information and message contents contained in the message may be extracted, and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- In some aspects, the present disclosure is directed to another method for pushing a message. The method may include receiving a pushed message. The method may also include extracting message contents and identification information contained in the pushed message. The method may further include determining a target application corresponding to each piece of the identification information, and sending the message contents to each corresponding target application.
- In some aspects, the present disclosure is directed to an apparatus for pushing a message. The apparatus may include an extraction unit configured to extract, when the message to be pushed is detected, user information and application information in the message. The apparatus may also include an acquisition unit configured to acquire link information corresponding to the user information and the application information. The apparatus may further include a determination unit configured to determine registered devices of the user information and registered applications on each registered device in accordance with the user information, the application information, and the link information. In addition, the apparatus may include an adding unit configured to add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device. The identification information and message contents contained in the message may be extracted, and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- In some aspects, the present disclosure is directed to another apparatus for pushing a message. The apparatus may include a receiving unit configured to receive a pushed message. The apparatus may also include an extraction unit configured to extract message contents and identification information contained in the pushed message. The apparatus may further include a determining and sending unit configured to determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- Message pushing methods and apparatuses in the present disclosure may include acquiring, when a message to be pushed is detected, user information and application information in the message and the corresponding link information to learn real-time, accurate login conditions of the user information. By adding identification information about a plurality of registered applications corresponding to the registered device to the message, only one message may need to be sent to the same registered device. All the plurality of registered applications may receive their corresponding message contents. It may be helpful to decrease the data volume of messages to be pushed, and may reduce power consumption of the registered device.
-
FIG. 1 illustrates a schematic structural diagram of an exemplary real-time message platform, according to some embodiments of the present disclosure. -
FIG. 2 is a flow chart of an exemplary method for pushing a message, according to some embodiments of the present disclosure. -
FIG. 3 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. -
FIG. 4 illustrates a processing flow chart of exemplary client registration, according to some embodiments of the present disclosure. -
FIG. 5 shows a processing flow chart of exemplary client logout, according to some embodiments of the present disclosure. -
FIG. 6 is a processing flow chart of an exemplary abnormal disconnection of a client, according to some embodiments of the present disclosure. -
FIG. 7 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. -
FIG. 8 shows a schematic diagram of an exemplary merging process, according to some embodiments of the present disclosure. -
FIG. 9 is a schematic diagram of an exemplary grouping process, according to some embodiments of the present disclosure. -
FIG. 10 illustrates a schematic structural diagram of an exemplary electronic device, according to some embodiments of the present disclosure. -
FIG. 11 is a block diagram of an exemplary apparatus for pushing a message, according to some embodiments of the present disclosure. -
FIG. 12 shows a schematic structural diagram of another exemplary electronic device, according to some embodiments of the present disclosure. -
FIG. 13 is a block diagram of another exemplary apparatus for pushing a message, according to some embodiments of the present disclosure. - Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which the same numbers in different drawings represent the same or similar elements unless otherwise represented. The implementations set forth in the following description of exemplary embodiments do not represent all implementations consistent with the invention. Instead, they are merely examples of apparatuses and methods consistent with aspects related to the invention as recited in the appended claims.
-
FIG. 1 illustrates a schematic structural diagram of an exemplary real-time message platform, according to some embodiments of the present disclosure. As shown inFIG. 1 , a service message from a service server may be processed by a real-time message platform and may be pushed to a client.FIG. 2 is a flow chart of an exemplary method for pushing a message, according to some embodiments of the present disclosure. The method may be applied to a message center (MSCenter) shown inFIG. 1 . The method may include the following steps: - Step 202: Extract, when the message to be pushed is detected, user information and application information in the message.
- Step 204: Acquire link information corresponding to the user information and the application information.
- In some embodiments, after a user logs in to an account on a device, the device may establish a link with a client access server (MSNode), and may initiate a registration request based on the link. The registration request may contain user information and application information. In some embodiments, the MSNode may also read link information from the link. The MSNode may send the link information, the application information, and the user information to a client link management center (CMCenter) for storing the correspondence between them.
- The user information may be information representing the user identity, such as user account information for login. The application information may be information representing a corresponding application program on the device, such as an application ID. The link information may correspond to information about a link that may be established with the MSNode and/or information about a device corresponding to the link, such as a link ID and/or a device ID. Each device may establish a plurality of links with the MSNode.
- Step 206: Determine registered devices of a user account and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- In some embodiments, the MSCenter may acquire, from each message to be pushed, user information about one or more users and one or more pieces of application information corresponding to each piece of the user information to form one or more “user information—application information” pairs. In addition, combining with the link information acquired at the CMCenter, the method may also include determining the real-time login state of the user account.
- In some embodiments, if the MSCenter acquires, according to a “user information—application information” pair, one corresponding piece of link information or a plurality of pieces of identical link information from the CMCenter, it may indicate that the user may log in by the user account on one application program on one device.
- In some embodiments, if the MSCenter acquires, according to a “user information—application information” pair, a corresponding plurality of pieces of different link information from the CMCenter, it may indicate that the user may log in by the same user account on the same application program on a plurality of devices.
- In some embodiments, if the MSCenter acquires, according to a plurality of “user information—application information” pairs corresponding to the same user account, the corresponding one piece of link information or a plurality of pieces of identical link information from the CMCenter, it may indicate that the user may log in by the same user account on a plurality of application programs on one device.
- Step 208: Add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device. The identification information and message contents contained in the message may be extracted and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- In some embodiments, the identification information about the registered applications may be contained in the corresponding application information. For example, the identification information may be the application IDs or other types of identification to distinguish the plurality of registered applications. By adding identification information about a plurality of registered applications to a message to be pushed, the method may need only one message to be pushed to a device. The plurality of registered applications may all receive the corresponding message contents. It may be helpful to decrease the data volume of messages to be pushed, and may reduce power consumption of the device.
- Corresponding to the processing procedure of the MSCenter described above, the same registered device above may process a received pushing message via a processing procedure shown in
FIG. 3 to ensure that a plurality of registered applications may all receive the message contents.FIG. 3 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. As shown inFIG. 3 , the method may be applied to a terminal or a device. The method may include the following steps: - Step 302: Receive a pushed message.
- In some embodiments, the pushed message in
step 302 may be the message to be pushed shown inFIG. 2 . - Step 304: Extract message contents and identification information contained in the pushed message.
- Step 306: Determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- Accordingly, the methods for pushing a message in the present disclosure may include acquiring, when a message to be pushed is detected, user information and application information in the message and the corresponding link information to learn real-time, accurate login conditions of a user account. By adding identification information about a plurality of registered applications corresponding to the registered device to the message, only one message may need to be sent to the same registered device. All the plurality of registered applications may receive their corresponding message contents. It may be helpful to decrease the data volume of messages to be pushed, and may reduce power consumption of the registered device.
- In addition to the above methods for a single device, the present disclosure is also directed to methods for a plurality of devices. When a plurality of registered devices corresponding to the same user account exist, the message to be pushed may be respectively pushed to each of the registered devices.
- In some embodiments, the MSCenter may duplicate the message to obtain a plurality of messages that may be one-to-one corresponding to the plurality of registered devices. The MSCenter may also acquire a node ID of a client access server corresponding to each of the registered devices, and may add each node ID to each corresponding message to be pushed accordingly. The MSCenter may add these messages each containing the node ID to a message pushing queue. Finally, the MSNode may push these messages in the message pushing queue.
- In some embodiments, a user may log in by an account respectively via applications on a plurality of devices. The plurality of devices may all receive the corresponding pushing messages to ensure that the user may be able to view the pushed message via any one of the devices.
-
FIGS. 4-6 illustrate several exemplary processes, including a client registration process, a corresponding logout process, and an abnormal disconnection process. These processes are further described below. - 1. Registration Process
-
FIG. 4 illustrates a processing flow chart of exemplary client registration, according to some embodiments of the present disclosure. As shown inFIG. 4 , a registration procedure may include the following steps: - Step 402: Initiate, by a client, a registration request to a current MSNode node.
- Step 404: Parse, by the current MSNode node, a protocol of the registration request.
- Step 406: Perform, by the current MSNode node based on a protocol parsing result, identity authentication and authorization on a user account that initiates the registration request.
- Step 408: Control a number of connections on the current MSNode node that processes the registration request.
- In some embodiments, the MSNode may be a server cluster containing a plurality of nodes. Each MSNode node may be configured with a preset number of connections. If the current MSNode node detects that the number of established connections exceeds the preset number of connections, the current registration request may be allocated to another idle MSNode node.
- The current MSNode node may return a route instruction to the client to guide and re-connect the client to another idle MSNode node.
- Step 410: Acquire, by the current MSNode node, user information and/or application information from the registration request, and extract link information from an established link.
-
Step 412A: Send, by the current MSNode node, the user information, the application information, and the link information to a CMCenter. -
Step 414A: Update data in accordance with the received user information, application information, and link information if client registration information about the user account exists in the CMCenter. Register as new client registration information if client registration information about the user account does not exist. -
Step 416A: Store, by the CMCenter, the client registration information in a link management database or a distributed cache system. -
Step 412B: Send, by the current MSNode node, the user information and the application information to the MSCenter. -
Step 414B: Acquire, by the current MSCenter node, the corresponding off-line data in accordance with the user information and the application information. - Step 416B: Clean, by the current MSCenter node, the off-line data.
- Step 418: Generate, by the current MSCenter node, a message to be pushed from the processed off-line data, and add the message to a message pushing queue.
- Step 420: Acquire, by the current MSNode node, the message to be pushed from the message pushing queue, and push the message to the client.
- 2. Logout Process
-
FIG. 5 shows a processing flow chart of exemplary client logout, according to some embodiments of the present disclosure. As shown inFIG. 5 , the client logout procedure may include the following steps: - Step 502: Initiate, by a client, a logout request to a current MSNode node.
- Step 504: Parse, by the current MSNode node, a protocol of the received logout request.
- Step 506: Perform, by the current MSNode node based on a protocol parsing result, identity authentication and authorization on the client.
- Step 508: Acquire, by the current MSNode node, user information and application information contained in the logout request, and delete all links established between the client and the current MSNode from a link manager.
- Step 510: Send, by the current MSNode node, a link logout command to a CMCenter.
- Step 512: Delete, by the CMCenter, connection information established between the current MSNode and the client, including deleting the corresponding link information from a database or a distributed cache. The client may be a device on which the client program is installed.
- 3. Abnormal Disconnection Process
-
FIG. 6 is a processing flow chart of an exemplary abnormal disconnection of a client, according to some embodiments of the present disclosure. As shown inFIG. 6 , the abnormal disconnection procedure may include the following steps: - Step 602: A client being abnormally disconnected from an MSNode node.
- Step 604: Capture, by the current MSNode node, abnormal disconnection information, and send a client link disconnection event.
- Step 606: Acquire, in response to the client link disconnection event, link information registered by the client with the current MSNode from a link manager of the current MSNode node, and delete the link information.
- Step 608: Send, by the current MSNode node, a link logout command to a CMCenter.
- Step 610: Delete, by the C MCenter, connection information established between the current MSNode and the client, including deleting the corresponding link information from a database or a distributed cache.
- By these procedures in
FIGS. 4-6 , the CMCenter may record the user information, the application information, and the link information as client registration information. - The MSCenter may accurately push a message based on the recorded client registration information. Referring to
FIG. 7 , a message pushing process may be described in detail below.FIG. 7 is a flow chart of another exemplary method for pushing a message, according to some embodiments of the present disclosure. As shown inFIG. 7 , when the real-time message platform shown inFIG. 1 may be used for pushing a message, the method may include the following steps: - Step 702: Receive, by a message agent center (MSAgent), a service application message delivered by a service server, and process, re-combine, and fill in the message in accordance with message header information in the message.
- Step 704: Generate, by the MSAgent, a message to be scheduled based on the processed, re-combined, and filled-in message, and add the message to a message scheduling queue.
- Step 706: Monitor, by a message center (MSCenter), whether a consumable message exists in the scheduling queue.
- Step 708: Acquire, by the MSCenter, the consumable message if the consumable message exists in the scheduling queue.
- Step 710: Clean, by the MSCenter, the message.
- Step 712, Acquire, by the MSCenter, user information and application information from a message header of the message.
- Step 714: Acquire, by the MSCenter, the corresponding link information from a client link management center (CMCenter) in accordance with the acquired user information and application information.
- In some embodiments, the link information, as shown in
FIGS. 4-6 , may be stored in client registration information in a database or a distributed cache by the CMCenter. - Step 716: Merge or group, by the MSCenter, the messages in accordance with the user information, the application information, and the link information.
- In some embodiments, the merging process and the grouping process above may be applied to different scenarios. The two processes are described below.
- 1) Merging Process
- In a scenario where a user may log in by the same user account respectively on a plurality of applications on the same device, the merging process may be performed on the messages so that only one message may need to be pushed to the device. The plurality of applications may acquire the corresponding message contents accordingly. It may decrease the data volume of pushed messages, and may reduce power consumption of the device. Especially for a mobile terminal device, this method may be helpful to reduce the data traffic consumption and prolong the standby time.
-
FIG. 8 shows a schematic diagram of an exemplary merging process, according to some embodiments of the present disclosure. As shown inFIG. 8 , a user may use the same user account, and may respectively log in on an application A, an application B, and an application C on adevice 1. After detecting a message to be pushed in a message scheduling queue, the MSCenter may be configured to extract user information, e.g., user ID=111, and application information, e.g., one of application ID=A, application ID2=B, or application ID3=C, in a message header of the message. The MSCenter may also be configured to acquire the corresponding link information, e.g., one of device ID=1 or device ID1=device ID2= . . . =1, from a CMCenter. The MSCenter may further configured to determine that the same user account corresponds todevice 1 and application A, application B, and application C ondevice 1. This is the scenario where a plurality of applications correspond to the same device. - Accordingly, the MSCenter may be configured to extract IDs of the application A, the application B, and the application C from link metadata information, such as application ID1, application ID2, and application ID3. The MSCenter may also be configured to add all the ID information to the same message, and add the message to a message pushing queue. After acquiring the message from the message pushing queue, the MSNode may be configured to directly send the message to
device 1. - Correspondingly, after receiving the pushed message,
device 1 may be configured to acquire the ID information, i.e., application ID1, application ID2, and application ID3, and message contents contained in the received message by parsing the received message.Device 1 may also configured to send the message contents to application A, application B, and application C corresponding to application ID1, application ID2, and application ID3, respectively. - By the above merging process, although application A, application B, and application C on the
device 1 all have the user account logged in, the method may need only one message to be pushed. All the applications may obtain the corresponding message contents accordingly. It may effectively decrease the data volume of messages to be pushed, especially when thedevice 1 may be a mobile device. As a result, the data traffic consumption may be reduced accordingly. Moreover, message pushing may be performed directly via only one link with the MSNode. It may reduce power consumption of thedevice 1, and may also save electric quantity of power supply. - 2) Grouping Process
- In a scenario where a user may log in by the same user account on the same application on a plurality of devices, the grouping process on messages may be performed so that each of the devices may receive the same pushed message. The user may be able to read the corresponding pushed message via any one of the devices. It may be helpful to avoid missing the message.
-
FIG. 9 is a schematic diagram of an exemplary grouping process, according to some embodiments of the present disclosure. As shown inFIG. 9 , a user may use the same user account to log in on the same application A on adevice 1, adevice 2 and adevice 3, respectively. After detecting a message to be pushed from a message scheduling queue, the MSCenter may be configured to extract user information, e.g., user ID=111, and application information, e.g., application ID=A, in a message header of the message, and acquire the corresponding link information, e.g., device ID1=1, device ID2=2, or device ID3=3, from a CMCenter. The MSCenter may also be configured to determine that the same user account corresponds to the application A on thedevice 1, thedevice 2 and thedevice 3. This is the scenario where a plurality of devices may correspond to the same application. - Accordingly, the MSCenter may take each device as a group, may divide one message to be pushed into a plurality of messages that are one-to-one corresponding to the plurality of devices, and may push the plurality of messages via an MSNode. The MSCenter may determine an MSNode node corresponding to each of the devices in accordance with link information. For example, as shown in
FIG. 9 , thedevice 1 may correspond to anMSNode node 1, thedevice 2 may correspond to anMSNode node 2, and thedevice 3 may correspond to anMSNode node 3. An ID of theMSNode node 1, an ID of theMSNode node 2, and an ID of theMSNode node 3 may be respectively added to their corresponding messages to be pushed. The messages to be pushed may be added to a message pushing queue. Each of the MSNode nodes may select the corresponding message to be pushed from the message pushing queue in accordance with the ID thereof and may perform a pushing operation, such as pushing the corresponding message to thedevice 2 via theMSNode node 2 or pushing the corresponding message to thedevice 3 via theMSNode node 3. - Referring back to
FIG. 7 , after the message merging/grouping ofstep 716, the following steps can be performed: - Step 718: Add, by the MSCenter, a message selector path into the message, e.g., a node ID of a client access server (MSNode) for pushing the message, in accordance with the link information.
- Step 720: Add, by the MSCenter, the message to a pushing queue.
- Step 722: Monitor, by the MSNode, whether a consumable message exists in the pushing queue. If a consumable message exists in the pushing queue, extract the corresponding message from the pushing queue. The MSNode may generally contain a plurality of nodes, and each node may have a corresponding unique ID. By detecting a node ID contained in each message in the pushing queue, the message may be extracted and processed by the corresponding node.
- Step 724: Acquire, by the MSNode, the link information from the extracted message, and read a link connection instance corresponding to the link information from a local link manager.
- Step 726: Encapsulate, by the MSNode, the link connection instance and the message content in the message into a pushing event, and broadcast it.
- Step 728: Push, by a local pushing event listener of the MSNode, the message content to the client using the corresponding link connection instance after receiving the broadcast pushing event.
- Step 730: Return, by the client, an acknowledgment (ACK) after receiving the pushed message content.
- Step 732: Perform, by the MSNode, a certain process in accordance with a receiving condition of the ACK.
- In some embodiments, if the MSNode has not received the ACK from the client within a specified period of time, a re-sending operation may be performed in
step 732. In some embodiments, when the re-sending operation may be performed for a certain number of times, the message may be sent to a failure processing queue. A failure message processor may perform a grading process on messages in accordance with a type of the failure queue. For example, for a Front type queue, the message re-sending may be attempted. Messages in a Backend queue may be recovered manually to the Front queue, or may be re-sent directly by a manual trigger. Messages in a dead letter queue (DLQ) may only be re-sent by a manual trigger. -
FIG. 10 illustrates a schematic structural diagram of an exemplary electronic device corresponding to an MSCenter, according to some embodiments of the present disclosure. Referring toFIG. 10 , at the hardware level, the electronic device may include a processor, an internal bus, a network interface, a memory, and a non-volatile memory. In some embodiments, the electronic device may also include additional hardware required by other services. The processor may be configured to read the corresponding computer program from the non-volatile memory into the memory for execution. The processor at the logical level may be configured to be an apparatus for pushing a message. In addition to software implementation, the present disclosure does not exclude any other implementations, such as a logical device or a method combining hardware and software. The execution entities of the following procedures may not be limited to various logical units, and may also be hardware or a logical device. -
FIG. 11 is a block diagram of an exemplary apparatus for pushing a message, according to some embodiments of the present disclosure. In some embodiments, an apparatus for pushing a message may include an extraction unit, an acquisition unit, a determination unit and a pushing unit. - The extraction unit may be configured to extract, when the message to be pushed is detected, user information and application information in the message.
- The acquisition unit may be configured to acquire link information corresponding to the user information and the application information.
- The determination unit may be configured to determine registered devices of a user account and registered applications on each registered device in accordance with the user information, the application information, and the link information.
- The adding unit may be configured to add, when a plurality of registered applications on a registered device exist, identification information about the plurality of registered applications to the message corresponding to the registered device. The identification information and message contents contained in the message may be extracted and the message contents may be respectively sent to each registered application corresponding to the identification information by the registered device after receiving the message.
- In some embodiments, the apparatus for pushing the message may further include a pushing unit configured to push, when a plurality of registered devices corresponding to the user account exist, the message to each registered device.
- In some embodiments, the pushing unit may be configured to duplicate the message to obtain a plurality of messages corresponding to the plurality of registered devices. The pushing unit may also be configured to acquire a node identity (ID) of a client access server corresponding to each registered device, and add each node ID to each corresponding message. The pushing unit may further be configured to add the plurality of messages each containing the node ID to a message pushing queue.
- In some embodiments, the acquisition unit may be configured to acquire, from a client link management center, link information corresponding to the user information and the application information. The link information may be acquired from a link established with a device when the client access server registers the device.
-
FIG. 12 shows a schematic structural diagram of another exemplary electronic device, according to some embodiments of the present disclosure. At the hardware level, the electronic device may include a processor, an internal bus, a network interface, a memory and a non-volatile memory. In some embodiments, the electronic device may also include additional hardware required by other services. The processor may read the corresponding computer program from the non-volatile memory into the memory for execution. In some embodiments, the processor at the logical level may be configured to form an apparatus for pushing a message. In addition to software implementation, the present disclosure does not exclude any other implementations, such as a logical device or a method combining hardware and software. The execution entities of the following processing procedure may not be limited to various logical units, and may also be hardware or a logical device. -
FIG. 13 is a block diagram of another exemplary apparatus for pushing a message, according to some embodiments of the present disclosure. In some embodiments, an apparatus for pushing a message may include a receiving unit, an extraction unit, and a sending unit. - The receiving unit may be configured to receive a pushed message.
- The extraction unit may be configured to extract message contents and identification information contained in the pushed message.
- The determining and sending unit may be configured to determine a target application corresponding to each piece of the identification information, and send the message contents to each corresponding target application.
- In a typical configuration, a computing device may include one or more processors (CPUs), an input/output interface, a network interface and a memory.
- The memory may include a non-permanent memory, a random access memory (RAM) and/or a non-volatile memory, such as a read-only memory (ROM) or flash memory (flash RAM), in computer-readable media. The memory may be an example of the computer-readable media.
- The computer-readable media may include permanent and non-permanent, removable and non-removable media and may realize information storage with any method or technology. The information may be a computer-readable instruction, data structure, program module or other data. The examples of computer storage media may include but are not limited to a phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memories (RAMs), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disk read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette tape, magnetic tape and magnetic disk storage or other magnetic storage devices or any other non-transmission media, which can be used to store information that can be accessed by a computing device. According to the definition herein, the computer-readable media do not include transitory media, such as modulated data signals and carriers.
- It also needs to be noted that the terms “include,” “comprise,” or any other variations thereof are intended to cover a non-exclusive inclusion. Therefore, in the context of a process, method, merchant, or device that includes a series of elements, the process, method, merchant, or device may not only include such elements, but may also include other elements not specified explicitly, or may also include inherent elements of the process, method, merchant, or device. If there are no more limitations, elements defined by “comprising a” do not exclude the situation where other identical elements exist in the process, method, merchant or device including the elements.
- The descriptions presented above are only preferred embodiments of the present disclosure, and are not intended to limit the present disclosure. Any modification, equivalent replacement, improvement, etc. within the spirit and principle of the present application shall all fall within the scope of protection of the present disclosure.
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/074,360 US20210036907A1 (en) | 2015-02-12 | 2020-10-19 | Methods and apparatuses for pushing a message |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNCN201510076896.6 | 2015-02-12 | ||
CN201510076896.6A CN105991412B (en) | 2015-02-12 | 2015-02-12 | Information push method and device |
PCT/CN2016/073275 WO2016127884A1 (en) | 2015-02-12 | 2016-02-03 | Message pushing method and device |
US15/675,208 US10812314B2 (en) | 2015-02-12 | 2017-08-11 | Methods and apparatuses for pushing a message |
US17/074,360 US20210036907A1 (en) | 2015-02-12 | 2020-10-19 | Methods and apparatuses for pushing a message |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/675,208 Continuation US10812314B2 (en) | 2015-02-12 | 2017-08-11 | Methods and apparatuses for pushing a message |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210036907A1 true US20210036907A1 (en) | 2021-02-04 |
Family
ID=56614172
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/675,208 Active 2036-04-22 US10812314B2 (en) | 2015-02-12 | 2017-08-11 | Methods and apparatuses for pushing a message |
US17/074,360 Abandoned US20210036907A1 (en) | 2015-02-12 | 2020-10-19 | Methods and apparatuses for pushing a message |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/675,208 Active 2036-04-22 US10812314B2 (en) | 2015-02-12 | 2017-08-11 | Methods and apparatuses for pushing a message |
Country Status (7)
Country | Link |
---|---|
US (2) | US10812314B2 (en) |
EP (1) | EP3258653A4 (en) |
JP (1) | JP6686033B2 (en) |
KR (1) | KR102167613B1 (en) |
CN (1) | CN105991412B (en) |
SG (2) | SG10201907044XA (en) |
WO (1) | WO2016127884A1 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991412B (en) | 2015-02-12 | 2019-03-19 | 阿里巴巴集团控股有限公司 | Information push method and device |
CN108155998A (en) * | 2016-12-05 | 2018-06-12 | 天脉聚源(北京)科技有限公司 | A kind of cluster server sends the method and system of broadcast message |
CN107659664A (en) * | 2017-10-30 | 2018-02-02 | 珠海格力电器股份有限公司 | Message transmission method, device and system |
CN108427598B (en) * | 2018-03-21 | 2021-05-25 | Oppo广东移动通信有限公司 | Message processing method, device, terminal and storage medium |
US11128575B2 (en) * | 2018-07-20 | 2021-09-21 | Bank Of America Corporation | System for increasing processing efficiency through automated resource field transformation |
CN109194734B (en) * | 2018-08-29 | 2021-12-14 | 北京小米移动软件有限公司 | Message pushing method and device, server and readable storage medium |
CN113140328A (en) * | 2020-01-19 | 2021-07-20 | 浙江爱多特大健康科技有限公司 | Information pushing method, device, equipment and computer readable storage medium |
CN112367246B (en) * | 2020-10-30 | 2022-06-17 | 深圳壹账通智能科技有限公司 | Message pushing method and device, electronic equipment and storage medium |
CN113836183A (en) * | 2021-09-10 | 2021-12-24 | 济南浪潮数据技术有限公司 | Method, system, device and storage medium for pushing logical flow table to client |
US20230297484A1 (en) * | 2022-03-17 | 2023-09-21 | International Business Machines Corporation | Predicting target applications |
CN115348309B (en) * | 2022-06-17 | 2024-03-22 | 上海数慧系统技术有限公司 | Communication management method and device |
CN116170344A (en) * | 2022-12-26 | 2023-05-26 | 海尔优家智能科技(北京)有限公司 | Message monitoring method, device, storage medium and electronic device |
CN115914367B (en) * | 2023-02-17 | 2023-05-30 | 福建联迪商用科技有限公司 | Message pushing method and system of intelligent device |
CN116405384B (en) * | 2023-03-21 | 2024-01-30 | 北京志凌海纳科技有限公司 | Method, system, equipment and storage medium for solving declarative API resource race |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023690A1 (en) * | 2001-07-26 | 2003-01-30 | Sunit Lohtia | Method and apparatus for providing selective delivery of notifications to users of multiple devices over a network |
US7475395B2 (en) * | 2005-01-04 | 2009-01-06 | Nokia Corporation | Multiple device notification synchronization |
US8630624B2 (en) * | 2009-02-25 | 2014-01-14 | Apple Inc. | Managing notification messages |
US8064896B2 (en) * | 2009-03-09 | 2011-11-22 | Apple Inc. | Push notification service |
CN102308532B (en) | 2009-05-21 | 2013-10-09 | 华为终端有限公司 | Method, system and server for processing point to multi-point push message |
US8842815B2 (en) * | 2009-07-29 | 2014-09-23 | Comcast Cable Communications, Llc | Identity management and service access for local user group based on network-resident user profiles |
CA2737829C (en) * | 2010-04-23 | 2015-06-23 | Research In Motion Limited | Method and apparatus for receiving data from a plurality of feed sources |
US20110314064A1 (en) * | 2010-06-16 | 2011-12-22 | Microsoft Corporation | Notifications Platform |
US8924489B2 (en) * | 2011-01-05 | 2014-12-30 | Apple Inc. | Message push notification client improvements for multi-user devices |
US8595345B2 (en) * | 2011-05-26 | 2013-11-26 | Mfluent Llc | Enhanced push notification services |
US8788881B2 (en) * | 2011-08-17 | 2014-07-22 | Lookout, Inc. | System and method for mobile device push communications |
US8634810B2 (en) * | 2011-09-29 | 2014-01-21 | International Business Machines Corporation | Pushing secure notifications to mobile computing devices |
KR20130083667A (en) * | 2012-01-13 | 2013-07-23 | 삼성전자주식회사 | Mobile communication and method for providing push service thereof |
KR101351594B1 (en) | 2012-03-09 | 2014-01-23 | 주식회사 엘지씨엔에스 | Method and system for providing push message |
US10210480B2 (en) * | 2012-05-31 | 2019-02-19 | Apple Inc. | Avoiding a redundant display of a notification on multiple user devices |
KR101488268B1 (en) * | 2012-08-30 | 2015-01-30 | 삼성전자주식회사 | Push message service system and method thereof |
US9509653B2 (en) * | 2012-10-29 | 2016-11-29 | Google Inc. | Systems and methods for directing messages to multiple user profiles on a mobile device |
US20140123157A1 (en) * | 2012-10-31 | 2014-05-01 | Nokia Corporation | Method and apparatus for providing application notifications |
US20140195620A1 (en) * | 2013-01-08 | 2014-07-10 | Ebay Inc. | Notification routing to a user device |
US9300492B2 (en) * | 2013-01-14 | 2016-03-29 | Dropbox, Inc. | Notification feed across multiple client devices |
WO2014110820A1 (en) * | 2013-01-18 | 2014-07-24 | 华为技术有限公司 | Notification push method, device, and system |
US9232339B2 (en) * | 2013-02-07 | 2016-01-05 | Oracle International Corporation | Mobile push notification |
CN103095732B (en) * | 2013-03-01 | 2015-12-09 | 畅捷通信息技术股份有限公司 | Information transmission system and information-pushing method |
US9288164B2 (en) * | 2013-06-07 | 2016-03-15 | Apple Inc. | Managing notifications across multiple devices |
US9450904B2 (en) * | 2013-07-15 | 2016-09-20 | Dropbox, Inc. | Coordinated notifications across multiple channels |
US9699625B2 (en) * | 2013-07-18 | 2017-07-04 | International Business Machines Corporation | Push notification middleware |
US9780994B2 (en) * | 2013-07-18 | 2017-10-03 | International Business Machines Corporation | Notification normalization |
CN103500266A (en) * | 2013-09-05 | 2014-01-08 | 北京航空航天大学 | Method and device for pushing application information based on health recognition |
US9250774B2 (en) * | 2013-10-23 | 2016-02-02 | Sap Se | User interface push channel |
WO2015066358A1 (en) * | 2013-10-30 | 2015-05-07 | Qwasi, Inc. | Systems and methods for delivering messages via smpp bridge for multiple delivery channels and push notification management |
US9537812B2 (en) * | 2013-12-31 | 2017-01-03 | Google Inc. | Methods, systems, and media for managing notifications directed to multiple applications installed on a user device |
CN104301203B (en) * | 2014-09-10 | 2016-04-27 | 腾讯科技(深圳)有限公司 | A kind of information push method and equipment |
CN105991412B (en) | 2015-02-12 | 2019-03-19 | 阿里巴巴集团控股有限公司 | Information push method and device |
US9900837B2 (en) * | 2016-06-09 | 2018-02-20 | Google Llc | Multi-channel communications for sending push notifications to mobile devices |
US10225359B2 (en) * | 2016-09-22 | 2019-03-05 | International Business Machines Corporation | Push notifications from multiple tenant servers |
CN106487928B (en) * | 2016-12-09 | 2019-12-13 | 北京小米移动软件有限公司 | Message pushing method and device |
-
2015
- 2015-02-12 CN CN201510076896.6A patent/CN105991412B/en active Active
-
2016
- 2016-02-03 JP JP2017542024A patent/JP6686033B2/en active Active
- 2016-02-03 WO PCT/CN2016/073275 patent/WO2016127884A1/en active Application Filing
- 2016-02-03 SG SG10201907044XA patent/SG10201907044XA/en unknown
- 2016-02-03 SG SG11201706615WA patent/SG11201706615WA/en unknown
- 2016-02-03 KR KR1020177025126A patent/KR102167613B1/en active Active
- 2016-02-03 EP EP16748685.1A patent/EP3258653A4/en not_active Ceased
-
2017
- 2017-08-11 US US15/675,208 patent/US10812314B2/en active Active
-
2020
- 2020-10-19 US US17/074,360 patent/US20210036907A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3258653A4 (en) | 2018-03-14 |
US20170339001A1 (en) | 2017-11-23 |
JP2018508072A (en) | 2018-03-22 |
SG10201907044XA (en) | 2019-09-27 |
CN105991412B (en) | 2019-03-19 |
US10812314B2 (en) | 2020-10-20 |
WO2016127884A1 (en) | 2016-08-18 |
KR102167613B1 (en) | 2020-10-20 |
SG11201706615WA (en) | 2017-09-28 |
EP3258653A1 (en) | 2017-12-20 |
KR20170117111A (en) | 2017-10-20 |
CN105991412A (en) | 2016-10-05 |
JP6686033B2 (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210036907A1 (en) | Methods and apparatuses for pushing a message | |
US9172593B2 (en) | System and method for identifying problems on a network | |
CN108063714B (en) | Network request processing method and device | |
CN103501486A (en) | Message pushing method and pushing server | |
CN112422684B (en) | Target message processing method and device, storage medium and electronic device | |
CN106201783B (en) | A kind of data reconstruction method and device | |
CN110225109B (en) | Multi-queue data transmission method based on 'industrial and commercial connection' platform | |
CN111159233A (en) | Distributed caching method, system, computer device and storage medium | |
CN107395559B (en) | Data processing method and device based on redis | |
US10491723B2 (en) | Content stream integrity and redundancy system | |
CN113225339B (en) | Network security monitoring method and device, computer equipment and storage medium | |
CN108063832B (en) | Cloud storage system and storage method thereof | |
CN114302350B (en) | Service provider failover method, device, electronic device and storage medium | |
CN105007143A (en) | Call preservation and recovery method and system | |
US10506021B2 (en) | Method and device for providing communication connection for a plurality of candidate applications in a mobile device | |
US9967163B2 (en) | Message system for avoiding processing-performance decline | |
US12009967B2 (en) | Communications methods and apparatus for minimizing and/or preventing message processing faults | |
CN110474807B (en) | Log processing method and device | |
US10742802B2 (en) | Methods and devices for verifying a communication number | |
US20240187904A1 (en) | Load Query Processing Method and Apparatus, Storage Medium and Electronic Apparatus | |
US20200162943A1 (en) | Method of providing management and control of hotspots with reduced messaging | |
CN111245772B (en) | CNAME processing method and device and electronic equipment | |
CN117914941A (en) | Message push data processing method, system and storage medium | |
CN114760297A (en) | Message pushing method, system, equipment and readable storage medium | |
CN119521148A (en) | Short message sending method, device, equipment and medium based on gateway function aggregation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD., CAYMAN ISLANDS Free format text: CHANGE OF NAME;ASSIGNOR:ALIBABA GROUP HOLDING LIMITED;REEL/FRAME:054135/0473 Effective date: 20200826 Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD., CAYMAN ISLANDS Free format text: CHANGE OF NAME;ASSIGNOR:ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.;REEL/FRAME:054135/0572 Effective date: 20200910 Owner name: ALIBABA GROUP HOLDING LIMITED, CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WANG, JUNXIANG;REEL/FRAME:054135/0405 Effective date: 20200423 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |