本申請涉及it與軟件開發,尤其涉及一種基于websocket和json-patch實現多人協同編輯的沖突解決方法及系統。
背景技術:
1、隨著低代碼開發平臺的普及,越來越多的企業和團隊開始采用這種開發模式來加速應用的構建和迭代。在多人協同開發的環境中,如何有效地管理和整合來自不同開發者的更改成為了一個關鍵的技術挑戰。如下圖,目前,業界采用了多種方法來解決這一問題,其中包括版本控制系統、鎖和權限管理以及數據同步和沖突解決策略等。然而,這些傳統方法在處理實時多人協同編輯時存在一些局限性。
技術實現思路
1、本申請示出了一種基于websocket和json-patch實現多人協同編輯的沖突解決方法及系統。
2、第一方面,本申請示出了一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,所述方法包括:
3、在低代碼平臺的客戶端獲取用戶的編輯操作,并將編輯操作轉換為json格式的操作信息;
4、通過websocket服務器接收多個客戶端發送的json格式的操作信息;
5、將接收到的json格式的操作信息按照用戶賬號存儲在數據庫中;
6、基于json-patch定義的操作類型,對多個用戶的并發操作進行沖突檢測;
7、根據預設的優先級規則,對檢測到的沖突操作進行合并處理;
8、將合并處理后的結果通過websocket服務器廣播給所有客戶端;
9、客戶端接收廣播的合并結果并更新低代碼平臺界面。
10、進一步的,json格式的操作信息包括:
11、用戶標識信息、操作時間戳、操作類型、操作路徑、和操作內容。
12、進一步的,json-patch定義的操作類型包括:
13、添加操作,用于在指定路徑下添加新的元素或子對象;
14、移除操作,用于從指定路徑移除元素;
15、替換操作,用于替換指定路徑的元素值;
16、移動操作,用于將元素從一個位置移動到另一個位置;
17、復制操作,用于復制元素到新的位置;
18、測試操作,用于測試指定路徑是否滿足特定條件。
19、進一步的,所述預設的優先級規則包括:
20、基于用戶角色和權限的優先級規則,其中,管理員操作優先于普通用戶操作;
21、基于時間戳的優先級規則,其中,越早到達的操作具有更高優先級;
22、基于操作依賴關系的優先級規則,確保依賴操作按正確順序執行;
23、基于操作類型的優先級規則,其中,移除操作具有最高優先級。
24、進一步的,所述websocket服務器具有以下功能:
25、管理客戶端連接的建立、保持和斷開;
26、提供連接自動降級機制,在websocket不可用時切換至其他兼容的傳輸方式;
27、支持自定義事件和房間機制,實現消息的精細化管理;
28、提供心跳檢測機制,維持連接活躍狀態。
29、進一步的,合并處理的具體步驟包括:
30、步驟501,檢查沖突操作的用戶角色,優先采用管理員的操作;
31、步驟502,若用戶角色相同,則比較操作時間戳,采用先到達的操作;
32、步驟503,若時間戳相同,則檢查操作依賴關系,確保依賴操作先執行;
33、步驟504,若無法通過步驟501至步驟503進行判斷,則根據操作類型優先級,優先執行移除操作。
34、進一步的,還包括通過socket.io內置的錯誤處理機制;監控連接狀態,處理連接中斷情況;處理數據傳輸錯誤;觸發重試或恢復機制;通知客戶端錯誤狀態。
35、進一步的,還包括數據持久化步驟:
36、將操作信息存儲到數據庫中;
37、記錄操作歷史;
38、支持操作回滾;
39、提供數據恢復機制。
40、第二方面,本申請示出了一種基于websocket和json-patch實現多人協同編輯的沖突解決系統,所述系統包括:
41、獲取操作信息模塊,用于在低代碼平臺的客戶端獲取用戶的編輯操作,并將編輯操作轉換為json格式的操作信息;
42、接受操作信息模塊,用于通過websocket服務器接收多個客戶端發送的json格式的操作信息;
43、存儲模塊,用于將接收到的json格式的操作信息按照用戶賬號存儲在數據庫中;
44、沖突檢測模塊,用于基于json-patch定義的操作類型,對多個用戶的并發操作進行沖突檢測;
45、合并處理模塊,用于根據預設的優先級規則,對檢測到的沖突操作進行合并處理;
46、廣播模塊,用于將合并處理后的結果通過websocket服務器廣播給所有客戶端;
47、更新模塊,用于客戶端接收廣播的合并結果并更新低代碼平臺界面。
48、進一步的,所述低代碼平臺的客戶端包括:
49、用于進行可視化開發的圖形用戶界面;
50、用于獲取用戶編輯操作的協同編輯模塊;
51、用于將編輯操作轉換為json格式的數據轉換模塊;
52、用于接收廣播結果并更新界面的顯示模塊。
53、本申請提供的技術方案可以包括以下有益效果:
54、1、利用json-patch格式化用戶操作,實現操作轉換以解決沖突
55、輕量級的操作格式:json-patch是一種格式輕量的規范,允許對json文檔進行增刪改等操作。它以操作列表的形式描述對文檔的更改,非常適合網絡傳輸。
56、高效的差異更新:通過描述文檔的最小更改集,json-patch能夠高效地在客戶端和服務器之間傳遞更新,減少數據傳輸量。
57、易于實現和集成:json-patch操作簡單,易于在各種編程語言和平臺中實現,并能與現有的json結構無縫集成。
58、2、將json-patch與ot算法相結合
59、實時沖突檢測與解決:json-patch用于描述用戶的具體操作,而ot(操作轉換)算法負責處理這些操作之間的沖突。根據時間戳、用戶角色等優先級規則對操作進行轉換,ot算法確保多個用戶的操作可以并行應用而不導致不一致。
60、提高協同編輯的準確性:結合使用后,系統能夠精確地識別和合并多用戶的實時編輯操作,保證最終文檔的正確性。
61、提升系統性能:json-patch提供了簡潔的操作描述,ot算法則優化了操作執行順序,兩者結合減少了服務器的處理負擔,提高了系統響應速度。
1.一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,所述方法包括:
2.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,json格式的操作信息包括:
3.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,json-patch定義的操作類型包括:
4.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,所述預設的優先級規則包括:
5.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,所述websocket服務器具有以下功能:
6.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,合并處理的具體步驟包括:
7.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,還包括通過socket.io內置的錯誤處理機制;監控連接狀態,處理連接中斷情況;處理數據傳輸錯誤;觸發重試或恢復機制;通知客戶端錯誤狀態。
8.如權利要求1所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決方法,其特征在于,還包括數據持久化步驟:
9.一種基于websocket和json-patch實現多人協同編輯的沖突解決系統,其特征在于,所述系統包括:
10.如權利要求9所述的一種基于websocket和json-patch實現多人協同編輯的沖突解決系統,其特征在于,所述低代碼平臺的客戶端包括: