CN112269770B - Document sharing method, device and system and electronic equipment - Google Patents

Document sharing method, device and system and electronic equipment Download PDF

Info

Publication number
CN112269770B
CN112269770B CN202011206291.1A CN202011206291A CN112269770B CN 112269770 B CN112269770 B CN 112269770B CN 202011206291 A CN202011206291 A CN 202011206291A CN 112269770 B CN112269770 B CN 112269770B
Authority
CN
China
Prior art keywords
module
state data
document
following
terminal
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.)
Active
Application number
CN202011206291.1A
Other languages
Chinese (zh)
Other versions
CN112269770A (en
Inventor
张正哲
王斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202011206291.1A priority Critical patent/CN112269770B/en
Publication of CN112269770A publication Critical patent/CN112269770A/en
Application granted granted Critical
Publication of CN112269770B publication Critical patent/CN112269770B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

The embodiment of the disclosure discloses a document sharing method, a document sharing device, a document sharing system and electronic equipment. One embodiment of the method comprises: in response to receiving the following state data, determining whether a user using the following terminal follows a shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit; if so, disassembling the following state data to obtain module state data of each module in at least one module of the shared document; and aiming at each module in at least one module, determining whether to dispatch the corresponding module state data to the module, if so, dispatching the corresponding module state data to the module, and executing corresponding operation. The implementation can restore operations performed by the editing user with respect to the shared document.

Description

Document sharing method, device and system and electronic equipment
Technical Field
The embodiment of the disclosure relates to the technical field of computers, in particular to a document sharing method, a document sharing device, a document sharing system and electronic equipment.
Background
Currently, more and more companies use this communication mode of video conferencing instead of offline conferencing. Video conferencing may be used for business meetings with colleagues and employees, training with employees, customer interaction, document review, and sales demonstrations. In a video conference, a sharer usually shares a desktop of an electronic device of the sharer when explaining a document, and transmits the desktop to conference participants in a video stream mode.
Disclosure of Invention
This disclosure is provided to introduce concepts in a simplified form that are further described below in the detailed description. This disclosure is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
The embodiment of the disclosure provides a document sharing method, a document sharing device, a document sharing system and electronic equipment.
In a first aspect, an embodiment of the present disclosure provides a document sharing method, which is applied to a following terminal, and the method includes: in response to receiving the following state data, determining whether a user using the following terminal follows a shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit; if so, disassembling the following state data to obtain module state data of each module in at least one module of the shared document; and aiming at each module in at least one module, determining whether to dispatch the corresponding module state data to the module, if so, dispatching the corresponding module state data to the module, and executing corresponding operation.
In a second aspect, an embodiment of the present disclosure provides a document sharing method, applied to an editing terminal, where the method includes: in response to detecting that an operation is performed on at least one module of a shared document, converting operation data for each module to module state data, wherein the shared document comprises the at least one module, and the shared document is a document which supports at least two persons to edit cooperatively; packaging the module state data of at least one module to obtain following state data; and sending the following state data to the following terminal by using the target server.
In a third aspect, an embodiment of the present disclosure provides a document sharing apparatus, which is disposed in a following terminal, and includes: the determining unit is used for responding to the received following state data, and determining whether a user using the following terminal follows the shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit; the disassembling unit is used for disassembling the following state data to obtain the module state data of each module in at least one module of the shared document if the user using the following terminal follows the shared document indicated by the following state data; and the execution unit is used for determining whether to dispatch the corresponding module state data to the module or not aiming at each module in at least one module, and if so, dispatching the corresponding module state data to the module and executing corresponding operation.
In a fourth aspect, an embodiment of the present disclosure provides a document sharing apparatus, disposed in an editing terminal, where the apparatus includes: the conversion unit is used for responding to the detection of executing operation on at least one module of a shared document, and converting operation data for executing operation on each module into module state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit; the encapsulation unit is used for encapsulating the module state data of at least one module to obtain following state data; and the first sending unit is used for sending the following state data to the following terminal by using the target server.
In a fifth aspect, an embodiment of the present disclosure provides a document sharing system, including: the editing terminal is used for responding to the detection that at least one module of the shared document is operated, converting operation data for each module to be operated into module state data, packaging the module state data of at least one module to obtain following state data, and sending the following state data to the following terminal by using the target server, wherein the shared document comprises at least one module and is a document supporting at least two persons to collaboratively edit; and the following terminal is used for responding to the received following state data, determining whether a user using the following terminal follows the shared document indicated by the following state data, if so, disassembling the following state data to obtain module state data of each module in at least one module of the shared document, determining whether to dispatch corresponding module state data to the module aiming at each module in at least one module, if so, dispatching corresponding module state data to the module, and executing corresponding operation.
In a sixth aspect, an embodiment of the present disclosure provides an electronic device, including: one or more processors; storage means for storing one or more programs which, when executed by the one or more processors, cause the one or more processors to implement the document sharing method as described in the first and second aspects.
In a seventh aspect, the disclosed embodiments provide a computer readable medium, on which a computer program is stored, which when executed by a processor, implements the steps of the document sharing method according to the first and second aspects.
According to the document sharing method, the document sharing device, the document sharing system and the electronic equipment, whether a user using the following terminal follows a shared document indicated by following state data is determined by responding to the received following state data; then, if the user using the following terminal follows the shared document indicated by the following state data, the following state data is disassembled to obtain the module state data of each module in the at least one module of the shared document; and finally, determining whether to distribute corresponding module state data to the module or not for each module in the at least one module, if so, distributing the corresponding module state data to the module, and executing corresponding operation. In this way, when a plurality of users open the same shared document, the operations performed by the editing users on the shared document can be restored by transmitting data.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numbers refer to the same or similar elements. It should be understood that the drawings are schematic and that elements and features are not necessarily drawn to scale.
FIG. 1 is an exemplary system architecture diagram in which various embodiments of the present disclosure may be applied;
FIG. 2 is a timing diagram for one embodiment of a document sharing system according to the present disclosure;
FIG. 3 is a flow diagram for one embodiment of a document sharing method according to the present disclosure;
FIG. 4 is a flow diagram of yet another embodiment of a document sharing method according to the present disclosure;
FIG. 5 is a flow diagram of yet another embodiment of a document sharing method according to the present disclosure;
FIG. 6 is a schematic diagram of one application scenario of a document sharing method according to the present disclosure;
FIG. 7 is a schematic block diagram of one embodiment of a document sharing apparatus according to the present disclosure;
FIG. 8 is a schematic block diagram of yet another embodiment of a document sharing device according to the present disclosure;
FIG. 9 is a schematic block diagram of a computer system suitable for use in implementing an electronic device of an embodiment of the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order, and/or performed in parallel. Moreover, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "include" and variations thereof as used herein are open-ended, i.e., "including but not limited to". The term "based on" is "based, at least in part, on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Relevant definitions for other terms will be given in the following description.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
FIG. 1 illustrates an exemplary system architecture 100 to which embodiments of the document sharing methods of the present disclosure may be applied.
As shown in fig. 1, the system architecture 100 may include editing terminals 1011, 1012, networks 1021, 1022, a server 103, and follower terminals 1041, 1042. A network 1021 is used to provide a medium for communication links between editing terminals 1011, 1012 and server 103. Network 1022 is the medium used to provide communications links between server 103 and follower terminals 1041, 1042. The networks 1021, 1022 may include various types of connections, such as wire, wireless communication links, or fiber optic cables, to name a few.
The user may interact with the server 103 via the network 1021 using the editing terminals 1011, 1012 to send or receive messages or the like, e.g. the editing terminals 1011, 1012 may send follow-up status data to the server 103. The user may also use the follower terminals 1041, 1042 to interact with the server 103 via the network 1022 to send or receive messages and the like, e.g., the follower terminals 1041, 1042 may receive follower status data sent by the server 103. Various messaging client applications, such as document editing applications, instant messaging software and enterprise collaboration platforms, may be installed on the editing terminals 1011, 1012 and the follower terminals 1041, 1042.
The editing terminal 1011, 1012 may first convert operation data for performing an operation for each module into module status data in response to detecting that a user performs an operation on at least one module of a shared document; then, the module state data of the at least one module can be packaged to obtain following state data; finally, the following state data may be sent to the following terminals 1041, 1042 by the server 103.
The following terminals 1041, 1042 may first determine, in response to receiving the following state data, whether the user using the following terminals 1041, 1042 follows the shared document indicated by the following state data; if the user using the following terminal 1041 or 1042 follows the shared document indicated by the following state data, the following state data may be disassembled to obtain module state data of each module in the at least one module of the shared document; then, for each of the at least one module, it may be determined whether to dispatch corresponding module status data to the module, and if so, the corresponding module status data may be dispatched to the module, so that the follower terminals 1041 and 1042 perform corresponding operations.
The editing terminals 1011, 1012 and the follower terminals 1041, 1042 may be hardware or software. When the editing terminal 1011, 1012 and the follower terminal 1041, 1042 are hardware, they may be various electronic devices having speakers and supporting information interaction, including but not limited to smart phones, tablet computers, laptop computers, and the like. When the editing terminals 1011, 1012 and the follower terminals 1041, 1042 are software, they can be installed in the electronic devices listed above. It may be implemented as multiple pieces of software or software modules (e.g., multiple pieces of software or software modules to provide distributed services) or as a single piece of software or software module. And is not particularly limited herein.
The server 103 may be a server that provides various services. For example, the server 103 may receive the following state data sent by the editing terminals 1011, 1012 and actively push the received following state data to the following terminals 1041, 1042 sharing the shared document with the editing terminals 1011, 1012.
The server 103 may be hardware or software. When the server 103 is hardware, it may be implemented as a distributed server cluster composed of a plurality of servers, or may be implemented as a single server. When the server 103 is software, it may be implemented as multiple pieces of software or software modules (e.g., to provide distributed services), or as a single piece of software or software module. And is not particularly limited herein.
It should be noted that the document sharing method provided by the embodiment of the present disclosure may be executed by the editing terminals 1011 and 1012, and in this case, the document sharing apparatus may be disposed in the editing terminals 1011 and 1012. The document sharing method provided in the embodiment of the present disclosure may also be executed by the follower terminals 1041 and 1042, and at this time, the document sharing apparatus may be disposed in the follower terminals 1041 and 1042.
It should be understood that the number of editing terminals, networks, servers, and follower terminals in fig. 1 is merely illustrative. There may be any number of editing terminals, networks, servers, and follower terminals, as desired for implementation.
FIG. 2 illustrates a timing diagram for one embodiment of a document sharing system according to the present disclosure.
The document sharing system of the present embodiment includes: an editing terminal and a following terminal. The editing terminal is used for responding to the detection of executing operation on at least one module of the shared document, converting operation data for executing operation on each module into module state data, packaging the module state data of at least one module to obtain following state data, and sending the following state data to the following terminal by using the target server; and the following terminal is used for responding to the received following state data, determining whether a user using the following terminal follows the shared document indicated by the following state data, if so, disassembling the following state data to obtain module state data of each module in at least one module of the shared document, determining whether to dispatch corresponding module state data to the module aiming at each module in at least one module, if so, dispatching corresponding module state data to the module, and executing corresponding operation.
As shown in fig. 2, in step 201, in response to detecting that an operation is performed on at least one module of a shared document, an editing terminal converts operation data, which performs the operation for each module, into module state data.
In this embodiment, the editing terminal may detect whether the user performs an operation on at least one module of the shared document. The shared document may also be referred to as a collaborative document or a collaborative document, and generally refers to a document that supports collaborative editing by at least two people. The shared document may include at least one module, which may include, but is not limited to: the system comprises a rolling module, a comment module, a file preview module and a picture module. It should be noted that the modules may be added or updated based on the document function.
As an example, a user may perform a scrolling operation for a scrolling module of a shared document, a comment operation for a comment module of a shared document, and a picture editing operation for a picture module of a shared document.
If detecting that an operation is performed on at least one module of the shared document, the editing terminal may convert operation data for performing the operation on each module into module state data (module state). As an example, if it is detected that a scroll operation is performed on the scroll module of the above-described shared document, scroll data (e.g., scroll direction, scroll distance) of the document may be converted into module state data (e.g., position to which the scroll bar is scrolled) of the scroll module.
In step 202, the editing terminal encapsulates the module state data of at least one module to obtain the following state data.
In this embodiment, the editing terminal may encapsulate the module state data of the at least one module to obtain follow-up state data (follow state). Encapsulating the module status data of at least one module may also be understood as integrating the module status data.
It should be noted that, the editing terminal may be installed with a VC Follow SDK (Video Conference Follow-up Software package), and the editing terminal may encapsulate the module state data of the at least one module by using the VC Follow SDK.
As an example, the editing terminal may package module state data of at least one module at the last moment in a period of time (e.g., 2 seconds) to periodically restore the shared document.
In step 203, the editing terminal transmits the following state data to the target server.
In this embodiment, the editing terminal may transmit the above-described following state data to the target server. The editing terminal can transmit the following state data to a distribution channel, the distribution channel generally uses a WebSocket protocol, the WebSocket enables data exchange between the client and the server to be simpler, and the server is allowed to actively push data to the client. In the WebSocket API, a browser and a server only need to perform a handshake action, then a fast channel is formed between the browser and the server, and data can be directly transmitted between the browser and the server. The target server can receive the following state data sent by the editing terminal and actively push the received following state data to the following terminal sharing the shared document with the editing terminal.
In step 204, the target server sends the following status data to the following terminal.
In this embodiment, the target server may transmit the following state data to the following terminal. Here, the target server may actively push the received follow-up state data to a follow-up terminal sharing the shared document with the editing terminal.
In step 205, the follower terminal determines whether the user using the follower terminal follows the shared document indicated by the follower state data in response to receiving the follower state data.
In this embodiment, the follower terminal may determine whether the follower status data is received. If the following state data is received, the following terminal can determine whether the user using the following terminal follows the shared document indicated by the following state data. Following the shared document may be understood as a process of the following terminal restoring an operation performed by the editing user on the editing terminal, for example, if the editing user clicks the picture a on the editing terminal and presents the picture a, at this time, the picture a is also presented on the following terminal.
By way of example, after a user using a follower terminal opens a shared document, an icon for characterizing that the shared document is followed and an icon for characterizing that the shared document is not followed may be presented on the follower terminal. If the user clicks the icon for representing the follow-up of the shared document, the follow-up terminal may determine that the user follows the shared document indicated by the follow-up state data.
In step 206, if it is determined that the user using the follow-up terminal follows the shared document indicated by the follow-up state data, the follow-up state data is disassembled to obtain the module state data of each module in at least one module of the shared document.
In this embodiment, if it is determined in step 205 that the user using the follower terminal follows the shared document indicated by the follower state data, the follower terminal may disassemble the follower state data to obtain the module state data of each module in at least one module of the shared document. As an example, the following state data is obtained by integrating module state data of at least one module, the following state data may include a module identifier, and the following state data may be disassembled into at least one module state data according to the module identifier.
It should be noted that the following terminal may be equipped with a VC Follow SDK, and the following terminal may disassemble the following state data by using the VC Follow SDK to obtain the module state data of each module in at least one module of the shared document.
In step 207, the follower terminal determines, for each of at least one module, whether to dispatch the corresponding module status data to that module.
In this embodiment, for each of the at least one module, the follower terminal may determine whether to dispatch the corresponding module status data to that module. Dispatch, which may also be referred to as event callback or event dispatch, triggers a callback by listening for a named event, and then issues the event with a value attached. Here, the follower terminal may listen for an event that dispatches corresponding module status data to the module, triggering the dispatch event and accompanying the module status data.
As an example, the follower terminal may determine whether the module has established a communication channel with the VC Follow SDK, and if a communication channel has been established, may determine to dispatch corresponding module status data to the module.
In step 208, if the follower terminal determines to dispatch the corresponding module status data to the module, the follower terminal dispatches the corresponding module status data to the module, and executes the corresponding operation.
In this embodiment, if it is determined in step 207 that the corresponding module status data is to be dispatched to the module, the follower terminal may dispatch the corresponding module status data to the module, and perform the corresponding operation. Here, the follower terminal may perform a corresponding operation using the module state data.
As an example, if the module is a scrolling module, the module status data may include a location (e.g., location a) to scroll to, and the follower terminal may scroll the scroll bar of the shared document to location a. If the module is a picture preview module, the module state data may include a picture to be previewed (e.g., picture C) and a picture magnification factor (e.g., 2 times), and the following terminal may magnify picture C by 2 times.
The system provided by the above embodiment of the present disclosure can restore the operation performed by the editing user on the document by transmitting data when multiple users open the same shared document. Compared with the existing document sharing mode, the mode of the present disclosure is not influenced by the screen size of the equipment and the network quality.
In some optional implementation manners, the following terminal may determine whether to serve the corresponding module status data to the module by: the following terminal may determine whether a preset condition is satisfied. Here, the above condition may include at least one of: the module status data corresponding to the module that was not dispatched to the module is not disabled. That is, the following terminal may determine whether the corresponding module status data has not been dispatched to the module, and if so, may dispatch the corresponding module status data to the module. For business reasons, the module status data may be disabled under certain circumstances, and at this time, the follower terminal may determine whether the module status data corresponding to the module is not disabled, and if so, may dispatch the corresponding module status data to the module. The following terminal may also determine whether the corresponding module state data has not been dispatched to the module and whether the module state data corresponding to the module is not disabled, and may dispatch the corresponding module state data to the module if the corresponding module state data has not been dispatched to the module and the module state data corresponding to the module is not disabled. It should be noted that the above conditions may be set according to business requirements.
In some optional implementations, the following terminal may receive document editing content edited with respect to the shared document, where the document editing content may include information such as a text and/or a picture added to the shared document. The following terminal can execute corresponding operation aiming at the document editing content. As an example, if the document editing content is comment information "expand some content again here", and the module state data corresponding to the comment module is text B commented on by the comment information, the following terminal may perform an operation of adding comment information "expand some content again here" to the text B.
In some alternative implementations, the module status data may correspond to document editing content. The module status data and the document editing content may correspond to numbers (also referred to as version numbers), and whether the module status data and the document editing content have a corresponding relationship may be determined by the numbers, for example, the module status data with the same number and the document editing content may be determined to have a corresponding relationship. Generally, module state data and document editing contents having a correspondence relationship are generated by an editing user at the same time due to execution of a certain action. Since the module status data and the document editing content are sent by the editing terminal using different distribution channels, there may be a case where the following terminal receives the module status data first and then receives the document editing content, or a case where the following terminal receives the document editing content first and then receives the module status data. Therefore, the condition may include that the document editing content corresponding to the module state data corresponding to the module has been received, that is, the follower terminal may determine whether the document editing content corresponding to the module state data corresponding to the module has been received, and may serve the corresponding module state data to the module if the document editing content corresponding to the module state data corresponding to the module has been received.
As an example, the editing terminal may number, in order from first to last, the module state data and the document editing content generated by the execution operation, that is, the module state data and the document editing content with the former operation execution time are usually smaller than the module state data and the document editing content with the latter operation execution time.
In some alternative implementations, the module status data may correspond to document editing content. The following terminal can determine whether the document editing content corresponding to the module state data corresponding to the module is received, and if the document editing content corresponding to the module state data corresponding to the module is not received, the module state data corresponding to the module can be stored as the module state data to be distributed. The module state data to be distributed may also be referred to as next version module state data (next version state).
In some optional implementation manners, after the module state data corresponding to the module is stored as the module state data to be distributed, the following terminal may determine whether the document editing content corresponding to the stored module state data is received, and if the document editing content corresponding to the stored module state data is received, the following terminal may distribute the stored module state data to the module.
In some alternative implementations, the follower terminal may store the dispatched module state data. Storing the dispatched module state data may be used to determine whether subsequently received module state data has been dispatched.
In some optional implementation manners, the follower terminal may determine whether to receive the follower state data, and if the follower state data is received, the follower terminal may update the last follower state data (last application follow state) by using the follower state data.
In some optional implementations, the editing terminal may send, to the follower terminal, document editing content for editing the shared document by using the target server. The document editing content may include information such as words and/or pictures added to the shared document. After receiving the document editing content, the following terminal may perform a corresponding operation with respect to the document editing content.
With continued reference to FIG. 3, a flow 300 of one embodiment of a document sharing method according to the present disclosure is shown. The document sharing method is applied to the following terminal and comprises the following steps:
step 301, in response to receiving the following state data, determining whether the user using the following terminal follows the shared document indicated by the following state data.
In the present embodiment, the execution subject of the document sharing method (e.g., the follower terminal shown in fig. 1) may determine whether the follower state data is received. If the follow-up state data is received, the execution subject may determine whether the user using the follow-up terminal follows the shared document indicated by the follow-up state data. Following a shared document may be understood as the process of the following terminal restoring the operation performed by the editing user on the editing terminal. For example, if the editing user clicks the picture a on the editing terminal and presents the picture a, the picture a is also presented on the execution body.
As an example, after a user using the execution body opens a shared document, an icon for representing that the shared document is to be followed and an icon for representing that the shared document is not to be followed may be presented on the execution body. If the user clicks an icon for representing that the shared document is followed, the execution subject may determine that the user follows the shared document indicated by the following state data.
Step 302, if the user using the following terminal follows the shared document indicated by the following state data, the following state data is disassembled to obtain the module state data of each module in at least one module of the shared document.
In this embodiment, if it is determined in step 301 that the user using the execution subject follows the shared document indicated by the following state data, the execution subject may disassemble the following state data to obtain module state data of each module in at least one module of the shared document. As an example, the following state data is obtained by integrating module state data of at least one module, the following state data may include a module identifier, and the execution subject may disassemble the following state data into at least one module state data according to the module identifier.
It should be noted that the execution main body may be installed with a VC Follow SDK, and the execution main body may disassemble the following state data by using the VC Follow SDK to obtain the module state data of each module in at least one module of the shared document.
Step 303, for each module of the at least one module, determines whether to dispatch the corresponding module status data to the module.
In this embodiment, for each module of the at least one module, the execution principal may determine whether to dispatch the corresponding module status data to the module. Dispatch, which may also be referred to as event callback or event dispatch, triggers a callback by listening for a named event, and then issues the event with a value attached. Here, the execution agent may listen for an event that dispatches corresponding module state data to the module, thereby triggering the dispatch event and accompanying the module state data.
As an example, the executing agent may determine whether the module establishes a communication channel with the VC Follow SDK, and if the communication channel is established, may determine to dispatch corresponding module status data to the module.
Step 304, if the module is dispatched with the corresponding module status data, and the corresponding operation is executed.
In this embodiment, if it is determined in step 303 that the corresponding module status data is to be distributed to the module, the execution main body may distribute the corresponding module status data to the module, and execute the corresponding operation. Here, the execution body may perform a corresponding operation using the module state data.
As an example, if the module is a scrolling module, the module status data may include a position (e.g., position a) to scroll to, and the execution subject may scroll the scroll bar of the shared document to position a. If the module is a picture preview module, the module status data may include a picture to be previewed (e.g., picture C) and a magnification factor of the picture (e.g., 2 times), and the execution main body may magnify the picture C to 2 times.
The method provided by the above embodiment of the present disclosure may restore, by transmitting data, an operation performed by an editing user with respect to a document when a plurality of users open the same shared document. Compared with the existing document sharing mode, the mode of the present disclosure is not influenced by the size of the screen of the device and the quality of the network.
In some optional implementations, the execution main body may receive document editing content edited with respect to the shared document, where the document editing content may include information such as text and/or pictures added to the shared document. The execution subject may execute a corresponding operation with respect to the document editing content. As an example, if the document editing content is comment information "expand some content again here", and the module state data corresponding to the comment module is text B commented on by the comment information, the execution subject may perform an operation of adding comment information "expand some content again here" to the text B.
In some alternative implementations, the module status data may correspond to document editing content. The execution subject may determine whether the document editing content corresponding to the module state data corresponding to the module has been received, and may store the module state data corresponding to the module as the module state data to be distributed if the document editing content corresponding to the module state data corresponding to the module has not been received. The above-mentioned module status data to be distributed may also be referred to as the next version of module status data.
In some optional implementation manners, after storing the module state data corresponding to the module as the module state data to be distributed, the execution main body may determine whether a document editing content corresponding to the stored module state data is received, and if a document editing content corresponding to the stored module state data is received, the execution main body may distribute the stored module state data to the module.
In some alternative implementations, the execution entity may store the dispatched module state data. Storing the dispatched module state data may be used to determine whether subsequently received module state data has been dispatched.
In some optional implementation manners, the execution main body may determine whether following state data is received, and if the following state data is received, the execution main body may update the latest following state data by using the following state data.
With further reference to FIG. 4, a flow 400 of yet another embodiment of a document sharing method is shown. The document sharing method is applied to the following terminal and comprises the following steps:
in step 401, in response to receiving the following state data, it is determined whether the user using the following terminal follows the shared document indicated by the following state data.
Step 402, if the user using the following terminal follows the shared document indicated by the following state data, disassembling the following state data to obtain the module state data of each module in at least one module of the shared document.
In the present embodiment, the steps 401-402 can be performed in a similar manner to the steps 301-302, and are not described herein again.
At step 403, for each module of the at least one module, it is determined whether the corresponding module status data has not been dispatched to the module.
In this embodiment, for each of at least one module, the executing agent of the document sharing method may determine whether the corresponding module status data has not been dispatched to that module. Since the execution subject may store the dispatched module state data, the execution subject may determine whether the corresponding module state data exists in the dispatched module state data. If the module state data does not exist in the dispatched module state data, it can be determined that the corresponding module state data is not dispatched to the module. If the module state data exists in the dispatched module state data, it can be determined that the corresponding module state data has been dispatched to the module.
If the module has not been dispatched with the corresponding module status data, then a determination is made as to whether the corresponding module status data has not been disabled, step 404.
In this embodiment, if it is determined in step 403 that the corresponding module status data has not been dispatched to the module, the execution principal may determine whether the corresponding module status data is not disabled. For business reasons, the module status data may be disabled in some cases, at which point the execution agent may determine whether the module status data corresponding to the module is not disabled.
In step 405, if the corresponding module status data is not disabled, it is determined whether document editing content corresponding to the module status data corresponding to the module has been received.
In this embodiment, if it is determined in step 404 that the corresponding module status data is not disabled, the execution subject may determine whether the document editing content corresponding to the module status data corresponding to the module has been received. The module state data and the document editing content may correspond to numbers, and whether the module state data and the document editing content have a correspondence may be determined by the numbers, for example, the module state data and the document editing content having the same number may be determined to have a correspondence. Generally, module status data and document editing contents having a correspondence relationship are generated by an editing user at the same time due to execution of a certain action. Since the module status data and the document editing content are sent by the editing terminal through different distribution channels, the execution body may receive the module status data and then receive the document editing content, or may receive the document editing content and then receive the module status data. Accordingly, the execution body may determine whether document editing contents corresponding to the module state data corresponding to the module have been received.
In step 406, if the document editing content corresponding to the module status data corresponding to the module is received, the module status data corresponding to the module is dispatched to the module, and the corresponding operation is executed.
In this embodiment, if it is determined in step 405 that the document editing content corresponding to the module status data corresponding to the module has been received, the corresponding module status data may be dispatched to the module, and the corresponding operation may be performed. Here, the execution body may perform a corresponding operation using the module state data.
As can be seen from fig. 4, compared with the embodiment corresponding to fig. 3, the flow 400 of the document sharing method in this embodiment embodies steps of three ways of determining whether the corresponding module status data is not dispatched to the module, determining whether the corresponding module status data is not disabled, and determining whether the document editing content corresponding to the module status data corresponding to the module has been received. Therefore, the scheme described in this embodiment can accurately determine whether to serve the corresponding module state data to the module.
With continued reference to FIG. 5, a flow 500 of yet another embodiment of a document sharing method is shown. The document sharing method is applied to an editing terminal and comprises the following steps:
in step 501, in response to detecting that an operation is performed on at least one module of a shared document, operation data for performing the operation on each module is converted into module state data.
In the present embodiment, an execution subject (e.g., an editing terminal shown in fig. 1) of the document sharing method may detect whether a user performs an operation on at least one module of a shared document. The shared document may also be referred to as a collaborative document or a collaborative document, and generally refers to a document that supports collaborative editing by at least two people. The shared document may include at least one module, which may include, but is not limited to: the system comprises a rolling module, a comment module, a file preview module and a picture module. It should be noted that the modules may be added or updated based on the document function.
As an example, a user may perform a scrolling operation for a scrolling module of a shared document, a comment operation for a comment module of a shared document, and a picture editing operation for a picture module of a shared document.
If it is detected that an operation is performed on at least one module of the shared document, the execution agent may convert operation data for performing the operation on each module into module state data. As an example, if it is detected that a scroll operation is performed on the scroll module of the shared document, the execution main body may convert scroll data (e.g., scroll direction, scroll distance) of the document into module state data (e.g., position to which the scroll bar is scrolled) of the scroll module.
Step 502, module state data of at least one module is encapsulated to obtain following state data.
In this embodiment, the execution main body may encapsulate the module state data of the at least one module to obtain the following state data. Encapsulating the module status data of at least one module may also be understood as integrating the module status data.
As an example, the execution subject may encapsulate module state data of at least one module at the last moment in a period of time (e.g., 1 second) to periodically restore the shared document.
It should be noted that the execution body may be installed with a VC Follow SDK, and the execution body may encapsulate the module state data of the at least one module by using the VC Follow SDK.
Step 503, the target server is used for sending the following state data to the following terminal.
In this embodiment, the execution agent may transmit the following state data to the following terminal using the target server. The execution main body can transmit the following state data to a distribution channel, the distribution channel generally uses a WebSocket protocol, the WebSocket enables data exchange between the client and the server to be simpler, and the server is allowed to actively push data to the client. In the WebSocket API, a browser and a server only need to perform a handshake action, then a fast channel is formed between the browser and the server, and data can be directly transmitted between the browser and the server. The target server can receive the following state data sent by the editing terminal and actively push the received following state data to the following terminal sharing the shared document with the editing terminal.
According to the method provided by the embodiment of the disclosure, when a plurality of users open the same shared document, the operation data of the shared document can be converted into the module state data, and the following state data obtained after the module state data is packaged is sent to the following terminal, so that the operation executed by the editing user for the document can be restored. Compared with the existing document sharing mode, the mode of the present disclosure is not influenced by the size of the screen of the device and the quality of the network.
In some optional implementations, the executing entity may send, to the follower terminal, document editing content for editing the shared document by using the target server. The document editing content may include information such as words and/or pictures added to the shared document. After receiving the document editing content, the following terminal may perform a corresponding operation with respect to the document editing content.
With continued reference to fig. 6, fig. 6 is a schematic diagram of an application scenario of the document sharing method according to the present embodiment. In the application scenario of fig. 6, an editing user uses an editing terminal to perform operations on the scrolling module 601, the comment module 602, and the picture module 603 of a shared document, and the editing terminal can convert operation data for performing operations on the scrolling module 601 into module state data of the scrolling module 601, convert operation data for performing operations on the comment module 602 into module state data of the comment module 602, and convert operation data for performing operations on the picture module 603 into module state data of the picture module 603; then, the module state data of the scrolling module 601, the module state data of the comment module 602, and the module state data of the picture module 603 may be encapsulated to obtain the following state data 605; then, the following state data 605 can be sent to the following terminal by using a dispatch channel, and after the following terminal receives the following state data 605, it is determined that the user using the following terminal follows the shared document indicated by the following state data 605; then, the following terminal can disassemble the following state data 605 to obtain the module state data of the scrolling module 601, the module state data of the comment module 602, and the module state data of the picture module 603 of the shared document; finally, for each of the scrolling module 601, the comment module 602, and the picture module 603, the follower terminal may determine whether to dispatch the corresponding module status data to the module, and if so, dispatch the corresponding module status data to the module, and perform a corresponding operation, thereby restoring the operation performed by the editing user on the editing terminal.
With further reference to fig. 7, as an implementation of the methods shown in the above figures, the present disclosure provides an embodiment of a document sharing apparatus, which corresponds to the method embodiment shown in fig. 3, and which is specifically applicable to various electronic devices.
As shown in fig. 7, the document sharing apparatus 700 of the present embodiment includes: a determination unit 701, a disassembly unit 702, and an execution unit 703. The determining unit 701 is configured to determine, in response to receiving the following state data, whether a user using a following terminal follows a shared document indicated by the following state data, where the shared document includes at least one module, and the shared document is a document that supports collaborative editing by at least two people; the disassembling unit 702 is configured to disassemble the following state data to obtain module state data of each module in at least one module of the shared document if the user using the following terminal follows the shared document indicated by the following state data; the execution unit 703 is configured to determine, for each module of the at least one module, whether to dispatch corresponding module status data to the module, and if so, dispatch corresponding module status data to the module and execute a corresponding operation.
In the present embodiment, the specific processing of the determining unit 701 and the disassembling unit 702 of the document sharing apparatus 700 may refer to step 301 and step 302 in the embodiment corresponding to fig. 3, and the specific processing of the executing unit 703 may refer to step 303 and step 304 in the embodiment corresponding to fig. 3.
In some optional implementations, the execution unit 703 may be further configured to determine whether to dispatch the corresponding module status data to the module, and if so, dispatch the corresponding module status data to the module: determining whether a preset condition is met, wherein the condition comprises at least one of the following: the corresponding module status data not being dispatched to the module and the corresponding module status data not being disabled; and if so, distributing corresponding module state data to the module.
In some alternative implementations, the document sharing apparatus 700 may further include a receiving unit (not shown in the figure). The receiving unit is used for receiving document editing content edited by a shared document; and the execution unit 703 is further configured to perform corresponding operations as follows: and executing corresponding operation aiming at the document editing content.
In some optional implementations, the module state data corresponds to document editing content; and the above conditions include: document editing content corresponding to the module state data corresponding to the module has been received.
In some alternative implementations, the document sharing apparatus 700 may further include a first storage unit (not shown in the figure). The first storage unit is used for storing the module state data corresponding to the module as the module state data to be distributed if the document editing content corresponding to the module state data corresponding to the module is not received.
In some alternative implementations, the document sharing apparatus 700 may further include a distribution unit (not shown in the figure). The dispatch unit is configured to dispatch the stored module state data to the module in response to receiving the document editing content corresponding to the stored module state data.
In some alternative implementations, the document sharing apparatus 700 may further include a second storage unit (not shown in the figure). The second storage unit is used for storing the dispatched module state data.
In some alternative implementations, the document sharing apparatus 700 may further include an updating unit (not shown in the figure). The updating unit is used for responding to the received following state data and updating the latest following state data by using the following state data.
With further reference to fig. 8, as an implementation of the method shown in the above figures, the present disclosure provides yet another embodiment of a document sharing apparatus, which corresponds to the method embodiment shown in fig. 5, and which is particularly applicable to various electronic devices.
As shown in fig. 8, the document sharing apparatus 800 of the present embodiment includes: a conversion unit 801, an encapsulation unit 802 and a first transmission unit 803. The conversion unit 801 is configured to convert, in response to detecting that an operation is performed on at least one module of a shared document, operation data for performing the operation on each module into module state data, where the shared document includes the at least one module, and the shared document is a document that supports collaborative editing by at least two people; the encapsulation unit 802 is configured to encapsulate module state data of at least one module to obtain following state data; the first sending unit 803 is configured to send the following status data to the following terminal by using the target server.
In the present embodiment, specific processing of the conversion unit 801, the encapsulation unit 802, and the first transmission unit 803 of the document sharing apparatus 800 may refer to step 501, step 502, and step 503 in the corresponding embodiment of fig. 5.
In some optional implementations, the document sharing apparatus 800 may further include a second sending unit (not shown in the figure). The second sending unit is used for sending the document editing content edited by the shared document to the following terminal by using the target server.
Referring now to fig. 9, shown is a schematic diagram of an electronic device (e.g., the editing terminal or the follower terminal of fig. 1) 900 suitable for use in implementing embodiments of the present disclosure. The editing terminal or the follower terminal in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a vehicle-mounted terminal (e.g., a car navigation terminal), and the like, and fixed terminals such as a digital TV, a desktop computer, and the like. The editing terminal or the follower terminal shown in fig. 9 is only an example, and should not bring any limitation to the functions and the use range of the embodiments of the present disclosure.
As shown in fig. 9, the electronic device 900 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 901 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)902 or a program loaded from a storage means 908 into a Random Access Memory (RAM) 903. In the RAM903, various programs and data necessary for the operation of the electronic apparatus 900 are also stored. The processing apparatus 901, the ROM 902, and the RAM903 are connected to each other through a bus 904. An input/output (I/O) interface 905 is also connected to bus 904.
Generally, the following devices may be connected to the I/O interface 905: input devices 906 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 907 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; and a communication device 909. The communication device 909 may allow the electronic apparatus 900 to perform wireless or wired communication with other apparatuses to exchange data. While fig. 9 illustrates an electronic device 900 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may be alternatively implemented or provided. Each block shown in fig. 9 may represent one device or may represent multiple devices as desired.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication device 909, or installed from the storage device 908, or installed from the ROM 902. The computer program, when executed by the processing apparatus 901, performs the above-described functions defined in the methods of the embodiments of the present disclosure. It should be noted that the computer readable medium described in the embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In embodiments of the present disclosure, however, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
The computer readable medium may be included in the editing terminal or the follower terminal; or may exist separately without being assembled into the editing terminal or the follower terminal. The computer readable medium carries one or more programs which, when executed by the follower terminal, cause the follower terminal to: in response to receiving the following state data, determining whether a user using the following terminal follows a shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit; if so, disassembling the following state data to obtain module state data of each module in at least one module of the shared document; and aiming at each module in at least one module, determining whether to dispatch the corresponding module state data to the module, if so, dispatching the corresponding module state data to the module, and executing corresponding operation. When the one or more programs are executed by the editing terminal, the editing terminal is caused to: in response to detecting that an operation is performed on at least one module of a shared document, converting operation data for each module to module state data, wherein the shared document comprises the at least one module, and the shared document is a document which supports at least two persons to edit cooperatively; packaging the module state data of at least one module to obtain following state data; and sending the following state data to the following terminal by using the target server.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present disclosure may be implemented by software or hardware. The described units may also be provided in a processor, and may be described as: a processor includes a determination unit, a disassembly unit, and an execution unit; it can also be described as: a processor includes a conversion unit, an encapsulation unit, and a first transmission unit. Where the names of the units do not in some cases constitute a limitation on the units themselves, for example, the first sending unit may also be described as a "unit sending following status data to the following terminal using the target server".
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the embodiments of the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is made without departing from the inventive concept as defined above. For example, the above features and (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure are mutually replaced to form the technical solution.

Claims (31)

1. A document sharing method is applied to a following terminal, and is characterized by comprising the following steps:
in response to receiving following state data, determining whether a user using the following terminal follows a shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to edit cooperatively;
if so, disassembling the following state data to obtain module state data of each module in the at least one module of the shared document;
and aiming at each module in the at least one module, determining whether to dispatch the corresponding module state data to the module, if so, dispatching the corresponding module state data to the module, and executing corresponding operation so as to restore the operation executed by the editing user on the shared document.
2. The method of claim 1, wherein determining whether to dispatch the corresponding module status data to the module, and if so, dispatching the corresponding module status data to the module comprises:
determining whether a preset condition is met, wherein the condition comprises at least one of the following: not dispatching corresponding module status data to the module and the corresponding module status data is not disabled;
and if so, distributing corresponding module state data to the module.
3. The method of claim 2, further comprising:
receiving document editing content edited for the shared document; and
the performing respective operations comprising:
and executing corresponding operation aiming at the document editing content.
4. The method of claim 3, wherein the module status data corresponds to document editing content; and
the conditions include: document editing content corresponding to the module state data corresponding to the module has been received.
5. The method of claim 4, further comprising:
and if the document editing content corresponding to the module state data corresponding to the module is not received, storing the module state data corresponding to the module as the module state data to be distributed.
6. The method of claim 5, wherein after storing the module state data corresponding to the module as the module state data to be dispatched, the method further comprises:
in response to receiving document editing content corresponding to stored module state data, the stored module state data is dispatched to the module.
7. The method of claim 1, wherein after said dispatching the corresponding module state data to the module, the method further comprises:
and storing the dispatched module state data.
8. The method of claim 1, further comprising:
in response to receiving the following state data, updating the most recent following state data with the following state data.
9. A document sharing method is applied to an editing terminal, and is characterized by comprising the following steps:
in response to detecting that an operation is performed on at least one module of a shared document, converting operation data for performing the operation on each module into module state data, wherein the shared document comprises the at least one module, and the shared document is a document supporting at least two persons for editing in cooperation;
packaging the module state data of the at least one module to obtain following state data;
and sending the following state data to a following terminal by using a target server so that the following terminal restores the operation executed by the editing user on the editing terminal.
10. The method of claim 9, further comprising:
and sending the document editing content edited aiming at the shared document to the following terminal by utilizing the target server.
11. A document sharing apparatus disposed in a following terminal, the apparatus comprising:
the determining unit is used for responding to the received following state data, and determining whether a user using the following terminal follows the shared document indicated by the following state data, wherein the shared document comprises at least one module, and the shared document is a document which supports at least two persons to collaboratively edit;
a disassembling unit, configured to disassemble the following state data to obtain module state data of each module in the at least one module of the shared document if a user using the following terminal follows the shared document indicated by the following state data;
and the execution unit is used for determining whether to dispatch the corresponding module state data to the module or not aiming at each module in the at least one module, if so, dispatching the corresponding module state data to the module, and executing corresponding operation so as to restore the operation executed on the shared document by the editing user.
12. The apparatus of claim 11, wherein the execution unit is further configured to determine whether to dispatch the corresponding module status data to the module by, if so, dispatching the corresponding module status data to the module:
determining whether a preset condition is met, wherein the condition comprises at least one of the following: not dispatching corresponding module status data to the module and the corresponding module status data is not disabled;
and if so, distributing corresponding module state data to the module.
13. The apparatus of claim 12, further comprising:
a receiving unit configured to receive document editing content edited for the shared document; and
the execution unit is further configured to perform corresponding operations by:
and executing corresponding operation aiming at the document editing content.
14. The apparatus of claim 13, wherein the module status data corresponds to document editing content; and
the conditions include: document editing content corresponding to the module state data corresponding to the module has been received.
15. The apparatus of claim 14, further comprising:
and the first storage unit is used for storing the module state data corresponding to the module as the module state data to be distributed if the document editing content corresponding to the module state data corresponding to the module is not received.
16. The apparatus of claim 15, further comprising:
and the dispatching unit is used for responding to the received document editing content corresponding to the stored module state data and dispatching the stored module state data to the module.
17. The apparatus of claim 11, further comprising:
and the second storage unit is used for storing the dispatched module state data.
18. The apparatus of claim 11, further comprising:
and the updating unit is used for responding to the received following state data and updating the latest following state data by using the following state data.
19. A document sharing apparatus provided in an editing terminal, the apparatus comprising:
the conversion unit is used for responding to the detection of executing operation on at least one module of a shared document, and converting operation data for executing operation on each module into module state data, wherein the shared document comprises the at least one module, and the shared document is a document which supports at least two persons to edit cooperatively;
the encapsulation unit is used for encapsulating the module state data of the at least one module to obtain following state data;
the first sending unit is used for sending the following state data to a following terminal by using a target server so that the following terminal restores the operation executed by the editing user on the editing terminal.
20. The apparatus of claim 19, further comprising:
a second sending unit, configured to send, by using the target server, document editing content edited for the shared document to the follower terminal.
21. A document sharing system, the system comprising:
the editing terminal is used for responding to the detection that at least one module of a shared document is operated, converting operation data for each module to be operated into module state data, packaging the module state data of the at least one module to obtain following state data, and sending the following state data to the following terminal by using a target server, wherein the shared document comprises the at least one module, and is a document supporting at least two persons to collaboratively edit;
the following terminal is configured to determine, in response to receiving the following state data, whether a user using the following terminal follows the shared document indicated by the following state data, if yes, disassemble the following state data to obtain module state data of each module in the at least one module of the shared document, determine, for each module in the at least one module, whether to dispatch corresponding module state data to the module, if yes, dispatch corresponding module state data to the module, and execute a corresponding operation to restore an operation executed by an editing user on the shared document.
22. The system of claim 21,
the following terminal is further configured to determine whether a preset condition is met, and if so, dispatch corresponding module state data to the module, where the condition includes at least one of: the corresponding module status data is not dispatched to the module and is not disabled.
23. The system of claim 22,
the following terminal is further used for receiving the document editing content edited aiming at the shared document and executing corresponding operation aiming at the document editing content.
24. The system of claim 23, wherein the module status data corresponds to document editing content; and
the conditions include: document editing content corresponding to the module state data corresponding to the module has been received.
25. The system of claim 23, wherein the module status data corresponds to document editing content; and
and the following terminal is also used for storing the module state data corresponding to the module as the module state data to be distributed if the document editing content corresponding to the module state data corresponding to the module is not received.
26. The system of claim 25,
the follower terminal is further configured to dispatch the stored module state data to the module in response to receiving the document editing content corresponding to the stored module state data.
27. The system of claim 21,
and the following terminal is also used for storing the dispatched module state data.
28. The system of claim 21,
and the following terminal is also used for responding to the received following state data and updating the latest following state data by using the following state data.
29. The system of claim 21,
the editing terminal is further configured to send, to the follower terminal, document editing content edited for the shared document by using the target server.
30. An electronic device, comprising:
one or more processors;
a storage device having one or more programs stored thereon,
when executed by the one or more processors, cause the one or more processors to implement the method of any one of claims 1-8, 9-10.
31. A computer-readable medium, on which a computer program is stored which, when being executed by a processor, carries out the method according to any one of claims 1-8, 9-10.
CN202011206291.1A 2020-11-02 2020-11-02 Document sharing method, device and system and electronic equipment Active CN112269770B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011206291.1A CN112269770B (en) 2020-11-02 2020-11-02 Document sharing method, device and system and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011206291.1A CN112269770B (en) 2020-11-02 2020-11-02 Document sharing method, device and system and electronic equipment

Publications (2)

Publication Number Publication Date
CN112269770A CN112269770A (en) 2021-01-26
CN112269770B true CN112269770B (en) 2022-08-09

Family

ID=74345724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011206291.1A Active CN112269770B (en) 2020-11-02 2020-11-02 Document sharing method, device and system and electronic equipment

Country Status (1)

Country Link
CN (1) CN112269770B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204528A (en) * 2021-03-29 2021-08-03 北京意匠文枢科技有限公司 Method and device for sharing document

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747460B1 (en) * 2014-01-17 2017-08-29 Jpmorgan Chase Bank, N.A. Systems and methods for data sharing and transaction processing for high security documents
CN111401029A (en) * 2020-03-10 2020-07-10 安徽科大国创软件科技有限公司 Document version updating system and method based on document partition and collaborative editing
CN111817946A (en) * 2020-06-28 2020-10-23 北京字节跳动网络技术有限公司 Processing method, device, equipment, medium and system for document sharing

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743973B (en) * 2016-01-22 2019-05-10 上海科牛信息科技有限公司 A kind of more equipment real-time synchronization cloud collaboration methods of more people and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747460B1 (en) * 2014-01-17 2017-08-29 Jpmorgan Chase Bank, N.A. Systems and methods for data sharing and transaction processing for high security documents
CN111401029A (en) * 2020-03-10 2020-07-10 安徽科大国创软件科技有限公司 Document version updating system and method based on document partition and collaborative editing
CN111817946A (en) * 2020-06-28 2020-10-23 北京字节跳动网络技术有限公司 Processing method, device, equipment, medium and system for document sharing

Also Published As

Publication number Publication date
CN112269770A (en) 2021-01-26

Similar Documents

Publication Publication Date Title
CN112311841B (en) Information pushing method and device, electronic equipment and computer readable medium
CN111931962B (en) Information display method and device and electronic equipment
CN113595850B (en) Information interaction method, device, server, system and storage medium
US20220300243A1 (en) Screen sharing method and device and electronic equipment
US11868707B2 (en) Information interaction method and apparatus, server, system, and storage medium
CN112311656B (en) Message aggregation and display method and device, electronic equipment and computer readable medium
CN112650456A (en) Printing method and device and electronic equipment
CN111596991A (en) Interactive operation execution method and device and electronic equipment
CN112269770B (en) Document sharing method, device and system and electronic equipment
CN112312057A (en) Multimedia conference data processing method and device and electronic equipment
CN112218034A (en) Video processing method, system, terminal and storage medium
CN110708238A (en) Method and apparatus for processing information
CN112600978B (en) Information processing method and device and electronic equipment
CN111596823B (en) Page display method and device and electronic equipment
CN114461582A (en) File processing method, device, equipment and storage medium
CN115883506A (en) Method, device, electronic equipment and storage medium for realizing group management
CN113890772A (en) Information processing method and device and electronic equipment
CN111953502A (en) Information announcement method and device and electronic equipment
CN112306317A (en) Unread message notification method and device and electronic equipment
CN111241443A (en) Method and device for pushing information and electronic equipment
CN115314456B (en) Interaction method and device and electronic equipment
CN112965778B (en) Chat page display method, chat page display device, electronic equipment and computer readable medium
CN112311749B (en) Method and device for adding participating members and electronic equipment
US20240056407A1 (en) Information interaction method and apparatus, and electronic device
CN114513548A (en) Directional call information processing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant