Detailed Description
It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
An intelligent terminal implementing various embodiments of the present invention will now be described with reference to the accompanying drawings. In the following description, suffixes such as "module", "component", or "unit" used to denote elements are used only for facilitating the explanation of the present invention, and have no specific meaning in themselves. Thus, "module" and "component" may be used in a mixture. Fig. 1 is a schematic structural diagram of a system for implementing a broadcast message push control method according to various embodiments of the present invention.
The system for controlling the push of the broadcast message comprises an intelligent terminal 100, a push server 200, an application server 300 and a file server 400.
The application server 300 is configured to send a push request to the push server to push a target broadcast message to a target application;
the push server 200 sends target broadcast information to the intelligent terminal 100 equipped with the target application after receiving the push request;
the file server 400 is used for storing files required by the push server, wherein the files comprise full channel files.
The intelligent terminal 100 is used for receiving the target broadcast information and distributing the target broadcast information to the target application.
Specifically, in the present invention, after the application is installed in the intelligent terminal, when the application opens the push service, the intelligent terminal registers with the push server to obtain channel allocation, and the push server allocates a user ID to the application, where the user ID uniquely corresponds to the intelligent terminal ID, that is, the same application on different intelligent terminals has different IDs, and the user ID also uniquely identifies the push channel between the application and the push server on the intelligent terminal, that is, a TCP connection is maintained between the intelligent terminal and the push server 200, so that the push server 200 pushes the broadcast message to the application. It will be appreciated that the application program also has its own application ID to distinguish between different applications, e.g., application a, application B, etc. The above information is recorded in a channel table stored in the push server as a channel record of the application, each channel record corresponds to an application on the intelligent terminal, and information such as an application ID, a user ID, and a device ID (i.e., an intelligent terminal ID) is recorded, where the device ID is used for uniquely identifying the intelligent terminal, and may be a physical address of the intelligent terminal such as an MAC address or other identifier capable of uniquely identifying the intelligent terminal, such as IMSI or ICCID of the intelligent terminal, and the present invention is not limited thereto, and the user ID is allocated by the push server. The channel table on the push server 200 records each channel record according to the registration time. As shown in table 1 below, an example of a channel table on the push server 200, it is to be understood that the present invention is not limited to this form.
TABLE 1 channel Table
Channel ID
|
Application ID
|
User ID
|
Device ID
|
Channel address
|
……
|
1
|
A
|
133
|
MAC1
|
address1
|
|
2
|
B
|
123
|
MAC2
|
address2
|
|
3
|
C
|
103
|
MAC3
|
address3
|
|
4
|
D
|
100
|
MAC4
|
address4
|
|
……
|
|
|
|
|
|
It can be understood that, because the channel table records the channel information of all the applications registered with the push server, the number of entries in the channel table will gradually increase, and the number is large, and it takes a long time to search one by one.
Here, the full channel file mainly stores the channel record of a certain application program in a centralized manner, that is, the full channel file classifies and sorts the channel table again by taking the application program as a distinction. It will be appreciated that to avoid the full channel file being too large, the record entries for each full channel file may be limited to a predetermined number, for example 10 ten thousand. An application may have multiple full channel files. The full channel file is stored in the file server 400.
In the invention, the file server can be a commercial server provided by a third party, or an FTP server can be built by a service provider.
The smart terminal may be implemented in various forms. For example, the terminal described in the present invention may include an intelligent terminal such as a mobile phone, a smart phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a navigation device, etc., and a fixed terminal such as a digital TV, a desktop computer, etc. In the following, it is assumed that the terminal is a smart terminal. However, it will be understood by those skilled in the art that the configuration according to the embodiment of the present invention can be applied to a fixed type terminal in addition to elements particularly used for moving purposes.
Fig. 2 is a schematic hardware structure of an optional intelligent terminal for implementing various embodiments of the present invention.
The smart terminal 100 may include a wireless communication unit 110, an a/V (audio/video) input unit 120, a user input unit 130, a sensing unit 140, an output unit 150, a memory 160, an interface unit 170, a controller 180, and a power supply unit 190, etc. Fig. 1 illustrates a smart terminal having various components, but it is to be understood that not all illustrated components are required to be implemented. More or fewer components may alternatively be implemented. The elements of the intelligent terminal will be described in detail below.
The wireless communication unit 110 generally includes one or more components that allow radio communication between the smart terminal 100 and a wireless communication system or network. For example, the wireless communication unit may include at least one of a broadcast receiving module 111, a mobile communication module 112, a wireless internet module 113, a short-range communication module 114, and a location information module 115.
The broadcast receiving module 111 receives a broadcast signal and/or broadcast associated information from an external broadcast management server via a broadcast channel. The broadcast channel may include a satellite channel and/or a terrestrial channel. The broadcast management server may be a server that generates and transmits a broadcast signal and/or broadcast associated information or a server that receives a previously generated broadcast signal and/or broadcast associated information and transmits it to a terminal. The broadcast signal may include a TV broadcast signal, a radio broadcast signal, a data broadcast signal, and the like. Also, the broadcast signal may further include a broadcast signal combined with a TV or radio broadcast signal. The broadcast associated information may also be provided via a mobile communication network, and in this case, the broadcast associated information may be received by the mobile communication module 112. The broadcast signal may exist in various forms, for example, it may exist in the form of an Electronic Program Guide (EPG) of Digital Multimedia Broadcasting (DMB), an Electronic Service Guide (ESG) of digital video broadcasting-handheld (DVB-H), and the like. The broadcast receiving module 111 may receive a signal broadcast by using various types of broadcasting systems. In particular, the broadcast receiving module 111 may receive a broadcast signal by using a signal such as multimedia broadcasting-terrestrial (DMB-T), digital multimedia broadcasting-satellite (DMB-S), digital video broadcasting-handheld (DVB-H), forward link media (MediaFLO)@) A digital broadcasting system of a terrestrial digital broadcasting integrated service (ISDB-T), etc. receives digital broadcasting. The broadcast receiving module 111 may be constructed to be suitable for various broadcasting systems that provide broadcast signals as well as the above-mentioned digital broadcasting systems. The broadcast signal and/or broadcast associated information received via the broadcast receiving module 111 may be stored in the memory 160 (or other type of storage medium).
The mobile communication module 112 transmits and/or receives radio signals to and/or from at least one of a base station (e.g., access point, node B, etc.), an external terminal, and a server. Such radio signals may include voice call signals, video call signals, or various types of data transmitted and/or received according to text and/or multimedia messages.
The wireless internet module 113 supports wireless internet access of the smart terminal. The module may be internally or externally coupled to the terminal. The wireless internet access technology to which the module relates may include WLAN (wireless LAN) (Wi-Fi), Wibro (wireless broadband), Wimax (worldwide interoperability for microwave access), HSDPA (high speed downlink packet access), and the like.
The short-range communication module 114 is a module for supporting short-range communication. Some examples of short-range communication technologies include bluetoothTMRadio Frequency Identification (RFID), infrared data association (IrDA), Ultra Wideband (UWB), zigbeeTMAnd so on.
The location information module 115 is a module for checking or acquiring location information of the smart terminal. A typical example of the location information module is a GPS (global positioning system). According to the current technology, the location information module 115 calculates distance information and accurate time information from three or more satellites and applies triangulation to the calculated information, thereby accurately calculating three-dimensional current location information according to longitude, latitude, and altitude. Currently, a method for calculating position and time information uses three satellites and corrects an error of the calculated position and time information by using another satellite. In addition, the position information module 115 can calculate the speed information by continuously calculating the current position information in real time.
The a/V input unit 120 is used to receive an audio or video signal. The a/V input unit 120 may include a microphone 122, and the microphone 122 may receive sounds (audio data) via the microphone in a phone call mode, a recording mode, a voice recognition mode, or the like, and may be capable of processing such sounds into audio data. The processed audio (voice) data may be converted into a format output transmittable to a mobile communication base station via the mobile communication module 112 in case of a phone call mode. The microphone 122 may implement various types of noise cancellation (or suppression) algorithms to cancel (or suppress) noise or interference generated in the course of receiving and transmitting audio signals.
The user input unit 130 may generate key input data according to a command input by a user to control various operations of the smart terminal. The user input unit 130 allows a user to input various types of information, and may include a keyboard, dome sheet, touch pad (e.g., a touch-sensitive member that detects changes in resistance, pressure, capacitance, and the like due to being touched), scroll wheel, joystick, and the like. In particular, when the touch pad is superimposed on the display unit 151 in the form of a layer, a touch screen may be formed.
The sensing unit 140 detects a current state of the smart terminal 100 (e.g., an open or closed state of the smart terminal 100), a position of the smart terminal 100, presence or absence of contact (i.e., touch input) of the user with respect to the smart terminal 100, an orientation of the smart terminal 100, acceleration or deceleration movement and direction of the smart terminal 100, and the like, and generates a command or signal for controlling an operation of the smart terminal 100. For example, when the smart terminal 100 is implemented as a slide-type mobile phone, the sensing unit 140 may sense whether the slide-type phone is opened or closed. In addition, the sensing unit 140 can detect whether the power supply unit 190 supplies power or whether the interface unit 170 is coupled with an external device.
The interface unit 170 serves as an interface through which at least one external device is connected to the smart terminal 100. For example, the external device may include a wired or wireless headset port, an external power supply (or battery charger) port, a wired or wireless data port, a memory card port, a port for connecting a device having an identification module, an audio input/output (I/O) port, a video I/O port, an earphone port, and the like. The identification module may store various information for authenticating a user using the smart terminal 100 and may include a User Identity Module (UIM), a Subscriber Identity Module (SIM), a Universal Subscriber Identity Module (USIM), and the like. In addition, a device having an identification module (hereinafter, referred to as an "identification device") may take the form of a smart card, and thus, the identification device may be connected with the smart terminal 100 via a port or other connection means. The interface unit 170 may be used to receive input (e.g., data information, power, etc.) from an external device and transmit the received input to one or more elements within the smart terminal 100 or may be used to transmit data between the smart terminal and the external device.
In addition, when the smart terminal 100 is connected with an external cradle, the interface unit 170 may serve as a path through which power is supplied from the cradle to the smart terminal 100 or may serve as a path through which various command signals input from the cradle are transmitted to the smart terminal. Various command signals or power input from the cradle may be used as signals for recognizing whether the smart terminal is accurately mounted on the cradle. The output unit 150 is configured to provide output signals (e.g., audio signals, video signals, alarm signals, vibration signals, etc.) in a visual, audio, and/or tactile manner. The output unit 150 may include a display unit 151, an audio output module 152, an alarm unit 153, and the like.
The display unit 151 may display information processed in the smart terminal 100. For example, when the smart terminal 100 is in a phone call mode, the display unit 151 may display a User Interface (UI) or a Graphical User Interface (GUI) related to a call or other communication (e.g., text messaging, multimedia file downloading, etc.). When the smart terminal 100 is in a video call mode or an image capturing mode, the display unit 151 may display a captured image and/or a received image, a UI or GUI showing a video or an image and related functions, and the like.
Meanwhile, when the display unit 151 and the touch pad are overlapped with each other in the form of a layer to form a touch screen, the display unit 151 may serve as an input device and an output device. The display unit 151 may include at least one of a Liquid Crystal Display (LCD), a thin film transistor LCD (TFT-LCD), an Organic Light Emitting Diode (OLED) display, a flexible display, a three-dimensional (3D) display, and the like. Some of these displays may be configured to be transparent to allow a user to view from the outside, which may be referred to as transparent displays, and a typical transparent display may be, for example, a TOLED (transparent organic light emitting diode) display or the like. According to certain desired embodiments, the smart terminal 100 may include two or more display units (or other display devices), for example, the smart terminal may include an external display unit (not shown) and an internal display unit (not shown). The touch screen may be used to detect a touch input pressure as well as a touch input position and a touch input area.
The audio output module 152 may convert audio data received by the wireless communication unit 110 or stored in the memory 160 into an audio signal and output as sound when the smart terminal is in a call signal reception mode, a call mode, a recording mode, a voice recognition mode, a broadcast reception mode, or the like. Also, the audio output module 152 may provide audio output related to a specific function performed by the smart terminal 100 (e.g., a call signal reception sound, a message reception sound, etc.). The audio output module 152 may include a speaker, a buzzer, and the like.
The alarm unit 153 may provide an output to notify the intelligent terminal 100 of the occurrence of an event. Typical events may include call reception, message reception, key signal input, touch input, and the like. In addition to audio or video output, the alarm unit 153 may provide output in different ways to notify the occurrence of an event. For example, the alarm unit 153 may provide an output in the form of vibration, and when a call, a message, or some other incoming communication (incomingmunication) is received, the alarm unit 153 may provide a tactile output (i.e., vibration) to inform the user thereof. By providing such a tactile output, the user can recognize the occurrence of various events even when the user's mobile phone is in the user's pocket. The alarm unit 153 may also provide an output notifying the occurrence of an event via the display unit 151 or the audio output module 152.
The memory 160 may store software programs and the like for processing and controlling operations performed by the controller 180, or may temporarily store data (e.g., a phonebook, messages, still images, videos, and the like) that has been or will be output. Also, the memory 160 may store data regarding various ways of vibration and audio signals output when a touch is applied to the touch screen.
The memory 160 may include at least one type of storage medium including a flash memory, a hard disk, a multimedia card, a card-type memory (e.g., SD or DX memory, etc.), a Random Access Memory (RAM), a Static Random Access Memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, an optical disk, and the like. Also, the smart terminal 100 may cooperate with a network storage device that performs a storage function of the memory 160 through a network connection.
The controller 180 generally controls the overall operation of the smart terminal. For example, the controller 180 performs control and processing related to voice calls, data communications, video calls, and the like. In addition, the controller 180 may include a multimedia module 1810 for reproducing (or playing back) multimedia data, and the multimedia module 1810 may be constructed within the controller 180 or may be constructed separately from the controller 180. The controller 180 may perform a pattern recognition process to recognize a handwriting input or a picture drawing input performed on the touch screen as a character or an image.
The power supply unit 190 receives external power or internal power and provides appropriate power required to operate various elements and components under the control of the controller 180.
The various embodiments described herein may be implemented in a computer-readable medium using, for example, computer software, hardware, or any combination thereof. For a hardware implementation, the embodiments described herein may be implemented using at least one of an Application Specific Integrated Circuit (ASIC), a Digital Signal Processor (DSP), a Digital Signal Processing Device (DSPD), a Programmable Logic Device (PLD), a Field Programmable Gate Array (FPGA), a processor, a controller, a microcontroller, a microprocessor, an electronic unit designed to perform the functions described herein, and in some cases, such embodiments may be implemented in the controller 180. For a software implementation, the implementation such as a process or a function may be implemented with a separate software module that allows performing at least one function or operation. The software codes may be implemented by software applications (or programs) written in any suitable programming language, which may be stored in the memory 160 and executed by the controller 180.
Up to this point, smart terminals have been described in terms of their functionality. Hereinafter, a slide-type smart terminal among various types of smart terminals such as a folder-type, bar-type, swing-type, slide-type smart terminal, and the like will be described as an example for the sake of brevity. Therefore, the present invention can be applied to any type of smart terminal, and is not limited to a slide type smart terminal.
The smart terminal 100 as shown in fig. 2 may be configured to operate using communication systems such as wired and wireless communication systems and satellite-based communication systems that transmit data via frames or packets.
A communication system in which the smart terminal according to the present invention can operate will now be described with reference to fig. 3.
Such communication systems may use different air interfaces and/or physical layers. For example, the air interface used by the communication system includes, for example, Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), and Universal Mobile Telecommunications System (UMTS) (in particular, Long Term Evolution (LTE)), global system for mobile communications (GSM), and the like. By way of non-limiting example, the following description relates to a CDMA communication system, but such teachings are equally applicable to other types of systems.
Referring to fig. 2, a CDMA wireless communication system may include a plurality of intelligent terminals 100, a plurality of Base Stations (BSs) 270, Base Station Controllers (BSCs) 275, and a Mobile Switching Center (MSC) 280. The MSC280 is configured to interface with a Public Switched Telephone Network (PSTN) 290. The MSC280 is also configured to interface with a BSC275, which may be coupled to the base station 270 via a backhaul. The backhaul may be constructed according to any of several known interfaces including, for example, E1/T1, ATM, IP, PPP, frame Relay, HDSL, ADSL, or xDSL. It will be understood that a system as shown in fig. 2 may include multiple BSCs 2750.
Each BS270 may serve one or more sectors (or regions), each sector covered by a multi-directional antenna or an antenna pointing in a particular direction being radially distant from the BS 270. Alternatively, each partition may be covered by two or more antennas for diversity reception. Each BS270 may be configured to support multiple frequency allocations, with each frequency allocation having a particular frequency spectrum (e.g., 1.25MHz,5MHz, etc.).
The intersection of partitions with frequency allocations may be referred to as a CDMA channel. The BS270 may also be referred to as a Base Transceiver Subsystem (BTS) or other equivalent terminology. In such a case, the term "base station" may be used to generically refer to a single BSC275 and at least one BS 270. The base stations may also be referred to as "cells". Alternatively, each sector of a particular BS270 may be referred to as a plurality of cell sites.
As shown in fig. 3, a Broadcast Transmitter (BT)295 transmits a broadcast signal to the smart terminal 100 operating within the system. The broadcast receiving module 111 as shown in fig. 2 is provided at the smart terminal 100 to receive a broadcast signal transmitted by the BT 295. In fig. 3, several Global Positioning System (GPS) satellites 300 are shown. The satellite 300 assists in locating at least one of the plurality of intelligent terminals 100.
In fig. 3, a plurality of satellites 300 are depicted, but it is understood that useful positioning information may be obtained with any number of satellites. The location information module 115 as shown in fig. 2 is generally configured to cooperate with the satellites 300 to obtain desired positioning information. Other techniques that can track the location of the smart terminal may be used instead of or in addition to GPS tracking techniques. In addition, at least one GPS satellite 300 may selectively or additionally process satellite DMB transmission.
As a typical operation of the wireless communication system, the BS270 receives reverse link signals from various intelligent terminals 100. The intelligent terminal 100 generally participates in conversations, messaging, and other types of communications. Each reverse link signal received by a particular base station 270 is processed within the particular BS 270. The obtained data is forwarded to the associated BSC 275. The BSC provides call resource allocation and mobility management functions including coordination of soft handoff procedures between BSs 270. The BSCs 275 also route the received data to the MSC280, which provides additional routing services for interfacing with the PSTN 290. Similarly, the PSTN290 interfaces with the MSC280, the MSC interfaces with the BSCs 275, and the BSCs 275 accordingly control the BS270 to transmit forward link signals to the intelligent terminal 100.
Based on the above intelligent terminal hardware structure and communication system, the present invention provides various embodiments of the method.
As shown in fig. 4, a first embodiment of the present invention provides a broadcast message push control device, which is applied to the push server side in fig. 1, the device 10 includes a file search module 310, a task creation module 320, a file download sub-module 330, a file push module 340, and an increment push module 350, which are described in detail below.
A file searching module 310, configured to search, when a push request of an application server is received, a plurality of full channel files of a target application program from an application channel file list;
specifically, the application channel file list records the corresponding relationship between the full channel files and the application program, and the application ID is used for searching to determine a plurality of full channel files owned by the application program. Here, a plurality means one or more. The push request sent by the application server includes an application ID of a target application program that needs to push a broadcast message, and after receiving the push request, the file searching module 310 obtains the application ID of the target application program from the push request, and can search and determine whether the current target application program has a corresponding full channel file and a specific file number in the application channel file list through the application ID.
It is understood that the application channel file list can be stored in the push server, the file server, or both the push server and the file server and updated synchronously in real time.
Referring to fig. 5, further, in the present embodiment, the apparatus 10 further includes:
the file creating module 360 is configured to trigger a file creating task at regular time, where the file creating task includes querying all channel records in a database, creating a plurality of full channel files of each application program in a multi-task manner, and storing the full channel files in the file server;
specifically, as described above, the channel records of a certain application program are stored in the full channel file set, and in order to avoid the full channel file from being too large, the number of record entries of each full channel file is a preset value, and each record entry corresponds to one channel information of the application program. The full channel file may be created by the file creation module by timing the file creation task. When the file creating task is triggered, the file creating module 360 starts to traverse the application information stored in the database, and when an application program is traversed, a file creating sub-task is created for each application and immediately starts to be executed, a full channel file belonging to the application program is created for the application program through the file creating sub-task, and a creating time stamp of the full channel file is locked until the traversal is completed. That is, the file creating module 360 creates a full channel file for each application program in a multitasking manner, and each file creating subtask corresponds to one application program, so that a batch of full channel files will be created. In detail, the execution process of each file creation subtask is as follows:
when the task is executed, the time at this time is registered as a first time. And simultaneously, acquiring a certain amount of channel records from a channel table in a database in a paging mode each time for querying to acquire the channel records corresponding to the application program and record the channel records into the current full channel file, sequentially reading the next page until the record entries of the current full channel file reach a preset value, when the full channel file is created, creating the next full channel file, recording and reading the page, repeating the steps until all the channel records in the channel table are queried, marking the creating time stamps of all the generated full channel files as first time, uploading all the generated full channel files to a file server, and updating an application channel file list.
It should be understood that the present invention is not limited to the specific form of the full channel file, and as shown in table 2, a schematic reference diagram of the content of the full channel file of the application a is shown, in which some channel records of the application a are recorded, including information such as the user ID and the device ID (i.e. the smart terminal ID). The content in the full channel file may be in a table form as shown in table 1, or may be in other forms, which is not limited in the present invention, and in table 1, the application name (application ID) to which the full channel file belongs and the time stamp (creation time) of the file are recorded.
It is understood that the naming of the files may be named by the application ID and the creation timestamp, and the files in the same batch may be sorted according to the number of the files, for example, assuming that the file creation module 360 starts the file creation task at 03 month, 03 and 27 pm in 2017, and creates a batch of 2 files for the application a through the file creation subtask after traversing to the application a, the application a has 2 full channel files, which may be named as "application a 201703271600-01" and "application a 201703271600-02", and the file numbers between the file-01 and the file-02 have no practical significance and may be exchanged.
TABLE 2 application A full channel Table
A task creating module 320, configured to create a plurality of pushing subtasks and incremental subtasks according to a search result when a plurality of full channel files of the target application program exist, where the pushing subtasks correspond to the full channel files of the target application program one to one;
specifically, when a plurality of full channel files of the target application program exist, the task creating module 320 correspondingly creates the same number of push subtasks according to the number of the full channel files, and creates one incremental subtask at the same time, for example, if it is found that 5 full channel files exist in the target application program, the task creating module 320 creates 5 push subtasks and 1 incremental subtask.
The file downloading submodule 330 is configured to download, from a file server, a plurality of full channel files of the target application program;
a file pushing module 340, configured to asynchronously execute a plurality of pushing subtasks, where each of the pushing subtasks is used to push a target broadcast message according to a full channel file of the corresponding target application;
specifically, when a plurality of full channel files of the target application program exist, the file downloading sub-module 330 downloads the plurality of full channel files of the target application program from the file server according to the search result. After downloading, the file pushing module 340 starts to execute the created pushing subtasks, and the execution mode is asynchronous. Through the above push subtasks, the file push module 340 pushes the target broadcast message to each channel on the full channel file according to the full channel file of the target application program corresponding to each push subtask. For example, still taking application a as an example, application a has two full channel files, "application a 201703271600-01" and "application a 201703271600-02", and assuming that push subtask 1 corresponds to file-01 and push subtask 2 corresponds to file-02, when executing push subtask 1, a target broadcast message is pushed through each recorded channel according to a channel record on file-01, and finally, users 133, 134, and 136 receive the target broadcast message, that is, application a on an intelligent terminal having physical addresses of MAC1, MAC5, and MAC6 receives the target broadcast message.
It should be understood that, in this embodiment, the downloading of the full channel file and the execution sequence of the push subtasks are not limited by the present invention. When a full channel file is searched, file downloading and subtask creation can be synchronously performed. When downloading of a certain full channel file is completed, as long as the corresponding pushing subtask starts to be created, the corresponding pushing subtask can be started to be executed, otherwise, the pushing subtask needs to be executed after the pushing subtask is created. When a push subtask is created and starts to execute, if the full channel file corresponding to the push subtask is not downloaded yet, the file needs to wait for the completion of file downloading. The execution of different pushing subtasks is not affected, i.e. the execution mode of the pushing subtasks is asynchronous.
In detail, in this embodiment, the process of executing each pushing subtask by the file pushing module 340 is as follows:
traversing the full channel files of the target application program corresponding to the pushing subtasks to determine the number of target channels;
creating the same number of offline messages according to the number of the target channels and the target broadcast messages;
inquiring the online state of the target channel to determine a target channel to be pushed;
and pushing the corresponding offline message to all the target channels to be pushed.
Specifically, taking application a as an example, application a has two full channel files, "application a 201703271600-01" and "application a 201703271600-02", and it is assumed that push subtask 1 corresponds to file-01 and push subtask 2 corresponds to file-02. When the push subtask 1 is executed, the file push module 340 traverses each channel record on the file-1, finally determines the number of target channels to be pushed, creates an offline message corresponding to each target channel, and determines the content of the offline message according to the target broadcast message. Then, inquiring the current online states of all the determined target channels, wherein the online target channels are listed as target channels to be pushed, pushing the off-line messages corresponding to the target channels to be pushed through the target channels to be pushed, and the target channels which are not online can be pushed temporarily or are pushed after waiting for online after being inquired regularly. Here, the online status refers to whether a push channel between the application program and the push server on the smart terminal still maintains a connected state, i.e., whether a TCP connection maintained between the smart terminal and the push server 200 is disconnected or maintains a connected state.
An increment pushing module 350, configured to execute the increment sub-task, where the increment sub-task is to push a target broadcast message to an increment channel of the target application.
Specifically, the increment pushing module 350 may push the target broadcast message to the increment channel of the target application by executing the increment subtask. Here, the incremental channel mainly includes a channel record of the target application program newly added on the channel table in the database during the period from the creation of the full channel file of the target application program to the pushing. By executing the increment subtask, the channel records which are not recorded in the full channel file can be pushed supplementarily, so as to avoid omission.
Further, referring to fig. 7, in the present embodiment, the increment pushing module 350 specifically includes:
a search range determining unit 351, configured to determine channel increment records according to creation timestamps of a plurality of full channel files of the target application program;
a traversal search unit 352, configured to traverse the channel increment record to determine an increment channel of the target application;
and the increment pushing unit 353 is configured to push the target broadcast message to the increment channel of the target application.
Specifically, the channel record in the channel table in the database further includes a record time. The search range determining unit 351 may determine a time (first time) according to the creation timestamps of the multiple full channel files of the target program, and then all the channel records with the recording time after the first time in the channel table are channel incremental records, the traversal search unit 352 traverses the channel incremental records according to the application ID of the target application program, and may determine the incremental channel of the target application program through matching, and thus, the incremental push unit 353 may push the target broadcast message to the determined incremental channel.
Further, referring to fig. 6, in the present embodiment, the apparatus 10 further includes:
a full push module 370, configured to query all channel records in a database to push a target broadcast message to all channels of the target application program when a plurality of full channel files of the target application program do not exist;
and an asynchronous triggering module 380, configured to trigger the file creation task when the multiple full channel files of the target application program do not exist.
Specifically, when the full channel file of the target application program cannot be searched, it indicates that the full channel file of the target application program is not established or is lost. At this time, the full pushing module 370 may directly search the channel table in the database, query the channel records matched with the application ID of the target application from all the channel records on the channel table, determine all the channels of the target application, and push the target broadcast message to the corresponding intelligent terminal through the channel when the matched channel is determined, so that the target application on the corresponding intelligent terminal may receive the target broadcast message. Meanwhile, the asynchronous trigger module 380 asynchronously triggers the file creation task, and the file creation module 360 starts to execute the task creation task to create the full channel file of the target program.
When the full channel file does not exist, the channel records in the database are searched to push the target broadcast message to the corresponding intelligent terminal, so that the pushing fault tolerance is increased, and the condition that the target broadcast message cannot be pushed is avoided through database supplement.
The broadcast message push control device searches a plurality of full channel files of a target application program from an application channel file list when receiving a push request of an application server; when a plurality of full channel files of the target application program exist, a plurality of pushing subtasks and incremental subtasks are established according to a search result; downloading a plurality of full channel files of the target application program from a file server; asynchronously executing a plurality of the pushing subtasks, and pushing a target broadcast message according to a full channel file of the corresponding target application program; and executing the increment subtask, and pushing a target broadcast message to an increment channel of the target application program. Therefore, the broadcast message pushing of the full channel file is realized in a multitask asynchronous concurrent mode by backing up the full channel file, the processing performance of the message pushing is improved, the incremental channel pushing is supplemented in a database mode, and the integrity of a pushing user is guaranteed.
As shown in fig. 8, a second embodiment of the present invention provides a broadcast message push control method, applied to a push server, where the method includes:
step 801, when a push request of an application server is received, searching a plurality of full channel files of a target application program from an application channel file list; if the file exists, go to step S802; if not, go to step S806;
specifically, the application channel file list records the corresponding relationship between the full channel files and the application program, and the application ID is used for searching to determine a plurality of full channel files owned by the application program. Here, a plurality means one or more. The push request sent by the application server includes an application ID of a target application program that needs to push a broadcast message, and after receiving the push request, the file searching module 310 obtains the application ID of the target application program from the push request, and can search and determine whether the current target application program has a corresponding full channel file and a specific file number in the application channel file list through the application ID.
It is understood that the application channel file list can be stored in the push server, the file server, or both the push server and the file server and updated synchronously in real time.
Further, in this embodiment, the method further includes the following steps:
triggering a file creating task at fixed time, wherein the file creating task comprises inquiring all channel records in a database, creating a plurality of full channel files of each application program in a multi-task mode and storing the full channel files in the file server;
specifically, as described above, the channel records of a certain application program are stored in the full channel file set, and in order to avoid the full channel file from being too large, the number of record entries of each full channel file is a preset value, and each record entry corresponds to one channel information of the application program. The full channel file may be created by the file creation module by timing the file creation task. When the file creating task is triggered, the file creating module 360 starts to traverse the application information stored in the database, and when an application program is traversed, a file creating sub-task is created for each application and immediately starts to be executed, a full channel file belonging to the application program is created for the application program through the file creating sub-task, and a creating time stamp of the full channel file is locked until the traversal is completed. That is, the file creating module 360 creates a full channel file for each application program in a multitasking manner, and each file creating subtask corresponds to one application program, so that a batch of full channel files will be created. In detail, the execution process of each file creation subtask is as follows:
when the task is executed, the time at this time is registered as a first time. And simultaneously, acquiring a certain amount of channel records from a channel table in a database in a paging mode each time for querying to acquire the channel records corresponding to the application program and record the channel records into the current full channel file, sequentially reading the next page until the record entries of the current full channel file reach a preset value, when the full channel file is created, creating the next full channel file, recording and reading the page, repeating the steps until all the channel records in the channel table are queried, marking the creating time stamps of all the generated full channel files as first time, uploading all the generated full channel files to a file server, and updating an application channel file list.
It should be understood that the present invention is not limited to the specific form of the full channel file, and as shown in table 2, a schematic reference diagram of the content of the full channel file of the application a is shown, in which some channel records of the application a are recorded, including information such as the user ID and the device ID (i.e. the smart terminal ID). The content in the full channel file may be in a table form as shown in table 1, or may be in other forms, which is not limited in the present invention, and in table 1, the application name (application ID) to which the full channel file belongs and the time stamp (creation time) of the file are recorded.
It is understood that the naming of the files may be named by the application ID and the creation timestamp, and the files in the same batch may be sorted according to the number of the files, for example, assuming that the file creation module 360 starts the file creation task at 03 month, 03 and 27 pm in 2017, and creates a batch of 2 files for the application a through the file creation subtask after traversing to the application a, the application a has 2 full channel files, which may be named as "application a 201703271600-01" and "application a 201703271600-02", and the file numbers between the file-01 and the file-02 have no practical significance and may be exchanged.
TABLE 2 application A full channel Table
Step 802, creating a plurality of pushing subtasks and incremental subtasks according to the search result, wherein the pushing subtasks correspond to the full channel files of the target application program one to one;
specifically, when a plurality of full channel files of the target application program exist, the task creating module 320 correspondingly creates the same number of push subtasks according to the number of the full channel files, and creates one incremental subtask at the same time, for example, if it is found that 5 full channel files exist in the target application program, the task creating module 320 creates 5 push subtasks and 1 incremental subtask.
Step 803, downloading a plurality of full channel files of the target application program from a file server;
a file pushing module 340, configured to asynchronously execute a plurality of pushing subtasks, where each of the pushing subtasks is used to push a target broadcast message according to a full channel file of the corresponding target application;
specifically, when a plurality of full channel files of the target application program exist, the file downloading sub-module 330 downloads the plurality of full channel files of the target application program from the file server according to the search result. After downloading, the file pushing module 340 starts to execute the created pushing subtasks, and the execution mode is asynchronous. Through the above push subtasks, the file push module 340 pushes the target broadcast message to each channel on the full channel file according to the full channel file of the target application program corresponding to each push subtask. For example, still taking application a as an example, application a has two full channel files, "application a 201703271600-01" and "application a 201703271600-02", and assuming that push subtask 1 corresponds to file-01 and push subtask 2 corresponds to file-02, when executing push subtask 1, a target broadcast message is pushed through each recorded channel according to a channel record on file-01, and finally, users 133, 134, and 136 receive the target broadcast message, that is, application a on an intelligent terminal having physical addresses of MAC1, MAC5, and MAC6 receives the target broadcast message.
It should be understood that, in this embodiment, the downloading of the full channel file and the execution sequence of the push subtasks are not limited by the present invention. When a full channel file is searched, file downloading and subtask creation can be synchronously performed. When downloading of a certain full channel file is completed, as long as the corresponding pushing subtask starts to be created, the corresponding pushing subtask can be started to be executed, otherwise, the pushing subtask needs to be executed after the pushing subtask is created. When a push subtask is created and starts to execute, if the full channel file corresponding to the push subtask is not downloaded yet, the file needs to wait for the completion of file downloading. The execution of different pushing subtasks is not affected, i.e. the execution mode of the pushing subtasks is asynchronous.
In detail, in this embodiment, referring to fig. 10, the process of executing each push subtask is as follows:
step S101, traversing the full channel files of the target application program corresponding to the pushing subtasks to determine the number of target channels;
step S102, establishing the same number of off-line messages according to the number of the target channels and the target broadcast messages;
step S103, inquiring the online state of the target channel to determine the target channel to be pushed;
and step S104, pushing corresponding off-line messages to all the target channels to be pushed.
Specifically, taking application a as an example, application a has two full channel files, "application a 201703271600-01" and "application a 201703271600-02", and it is assumed that push subtask 1 corresponds to file-01 and push subtask 2 corresponds to file-02. When the push subtask 1 is executed, the file push module 340 traverses each channel record on the file-1, finally determines the number of target channels to be pushed, creates an offline message corresponding to each target channel, and determines the content of the offline message according to the target broadcast message. Then, inquiring the current online states of all the determined target channels, wherein the online target channels are listed as target channels to be pushed, pushing the off-line messages corresponding to the target channels to be pushed through the target channels to be pushed, and the target channels which are not online can be pushed temporarily or are pushed after waiting for online after being inquired regularly. Here, the online status refers to whether a push channel between the application program and the push server on the smart terminal still maintains a connected state, i.e., whether a TCP connection maintained between the smart terminal and the push server 200 is disconnected or maintains a connected state.
Step S805, executing the increment sub-task, where the increment sub-task is to push a target broadcast message to an increment channel of the target application program.
Specifically, the increment pushing module 350 may push the target broadcast message to the increment channel of the target application by executing the increment subtask. Here, the incremental channel mainly includes a channel record of the target application program newly added on the channel table in the database during the period from the creation of the full channel file of the target application program to the pushing. By executing the increment subtask, the channel records which are not recorded in the full channel file can be pushed supplementarily, so as to avoid omission.
Further, referring to fig. 9, in this embodiment, the step S805 specifically includes:
step S901, determining a channel increment record according to creation timestamps of a plurality of full channel files of the target application program;
step S902, traversing the channel increment record to determine an increment channel of the target application program;
step S903, pushing the target broadcast message to the increment channel of the target application program.
Specifically, the channel record in the channel table in the database further includes a record time. The search range determining unit 351 may determine a time (first time) according to the creation timestamps of the multiple full channel files of the target program, and then all the channel records with the recording time after the first time in the channel table are channel incremental records, the traversal search unit 352 traverses the channel incremental records according to the application ID of the target application program, and may determine the incremental channel of the target application program through matching, and thus, the incremental push unit 353 may push the target broadcast message to the determined incremental channel.
Step S806, inquiring all channel records in a database to push target broadcast messages to all channels of the target application program;
step S807, a file creation task is triggered.
Specifically, when the full channel file of the target application program cannot be searched, it indicates that the full channel file of the target application program is not established or is lost. At this time, the channel table in the database may be directly searched, the channel record matching the application ID of the target application program is queried from all the channel records on the channel table, all the channels of the target application program are determined, and when the matched channel is determined, the target broadcast message is pushed to the corresponding intelligent terminal through the channel, so that the target application program on the corresponding intelligent terminal may receive the target broadcast message. Meanwhile, the file creation task is asynchronously triggered, and the file creation module 360 starts to execute the task creation task to create the full channel file of the target program.
When the full channel file does not exist, the channel records in the database are searched to push the target broadcast message to the corresponding intelligent terminal, so that the pushing fault tolerance is increased, and the condition that the target broadcast message cannot be pushed is avoided through database supplement.
The broadcast message push control method provided by the invention comprises the steps of searching a plurality of full channel files of a target application program from an application channel file list when a push request of an application server is received; when a plurality of full channel files of the target application program exist, a plurality of pushing subtasks and incremental subtasks are established according to a search result; downloading a plurality of full channel files of the target application program from a file server; asynchronously executing a plurality of the pushing subtasks, and pushing a target broadcast message according to a full channel file of the corresponding target application program; and executing the increment subtask, and pushing a target broadcast message to an increment channel of the target application program. Therefore, the broadcast message pushing of the full channel file is realized in a multitask asynchronous concurrent mode by backing up the full channel file, the processing performance of the message pushing is improved, the incremental channel pushing is supplemented in a database mode, and the integrity of a pushing user is guaranteed.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description, and do not represent advantages and disadvantages of the embodiments, and features in the embodiments and the embodiments of the present invention may be implemented in combination with each other without conflict.
Through the above description of the embodiments, those skilled in the art will clearly understand that the method of the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but in many cases, the former is a better implementation manner. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (such as a mobile phone, a computer, a server, an air conditioner, or a network device) to execute the method according to the embodiments of the present invention.
The above description is only a preferred embodiment of the present invention, and not intended to limit the scope of the present invention, and all modifications of equivalent structures and equivalent processes, which are made by using the contents of the present specification and the accompanying drawings, or directly or indirectly applied to other related technical fields, are included in the scope of the present invention.