[0008] First, the
rapid expansion of the functions of personal
instant messaging software in terms of entertainment and shopping has led to the forced closure of personal
instant messaging tools in some scenarios. There are obvious shortcomings in the company's instant messaging products with technology mobilization, which are insufficient in security, practicability, stability, and
scalability. They do not support functions such as real-time voice calls and multi-person conferences. Users cannot create groups by themselves, and do not support real-time For services such as voice, the construction of servers and terminals is extremely complicated, and the use is not popular, the protocol is complex and redundant, the application is low in customizability, and there are problems in user
data security, especially
server control;
[0009] Second, the power and network of mobile
terminal equipment in the prior art are severely limited, the real-time performance of the communication system is low, the efficiency of message push is low, and the system responds to
timeout faults frequently during asynchronous task
processing. It is initiated by the
client, and there is no mechanism for the
server to notify the
client. In the
scenario where notification is required, the
client application continuously polls the
server. In the instant messaging
scenario, a message push mechanism is required, and the server actively transmits the message to the client. Different from the respective characteristics of the mobile terminal, the
push technology of the two is also significantly different. Most of the existing web applications are based on the HTTP protocol, but the data packet of the HTTP request is large, which will increase the
data traffic; if the
polling interval is too short It will consume a lot of power and traffic. If the time interval is too long, the arrival of message data will not be timely enough; the two commonly used methods for asynchronous task processing at this stage include the AsyncTask mechanism and the communication mechanism between multi-threads based on Handler. , although the AsyncTask code is simple and easy to use, it consumes more resources than the Handler mechanism and is not suitable for scenarios with many threads;
[0010] Third, the topic-based publish-subscribe model is inefficient in the process of traversing the topic tree level by level, especially when the subscription topic tree is complex or the number of clients is large, the efficiency of the topic-based subscription-publish model is significantly reduced, and the topic management And screening needs to consume resources. Subscription topics that describe accurately and express in place require more complex matching algorithms, which actually reduce system performance. Moreover, the expressive ability of topics is limited, and the coverage is also limited. Unlimited events are divided by limited topics, and the division The
result set is rough and fuzzy. If the subscriber cannot find a suitable topic, they can only obtain enough information by increasing the number of subscribed topics. The publisher also has multiple meanings when dividing the topics of events, especially semantic
ambiguity. Causes the deviation of the theme; the analysis and statistics of the content based on the publishing and subscribing of the content requires more complex algorithms and statistical models, which increases the amount of calculation of the system, and does not have the efficiency and accuracy of directly matching the theme, which needs to be increased repeatedly Subject keywords can cover subscribers;
[0011] Fourth,
Android application development adopts the UI single-threaded model. When dealing with time-consuming operations such as writing and reading databases, or network requests, it is necessary to create a new sub-thread for processing, so as to avoid the interruption of the UI main thread. Blocking, the
thread pool storage method of the existing mode is mainly to switch between multiple worker threads, and the redundant sub-threads are put into the buffer
queue. When a new asynchronous task is generated, a new sub-thread will be created and added to the buffer
queue. If If the number of working threads and the number of threads in the buffer
queue have reached the configuration in the parameters, the creation of a new asynchronous task thread fails, and the system cannot respond in time, causing the asynchronous task to block the UI main thread, resulting in an ANR exception in the system, and multiple
System resources are also easily consumed during worker thread switching;
[0012] Fifth, in the existing products, the office real-time communication system has a single grouping form of the
address book, does not support real-time feedback of task
collaboration, the client is relatively bloated, and the power and network of the mobile terminal are severely limited. However, the existing asynchronous task processing mechanism cannot meet the needs, the multi-thread processing performance is weak, the
resource consumption is large, the real-time performance, traffic consumption and
power consumption cannot meet the actual application requirements, and there are obvious shortcomings in function, adaptability and performance. Does not run smoothly on mobile terminals