想象一下,多人白板可以同時吸引多人蔘與。爲了簡單起見,可以說白板上有一個可以被任何用戶移動或刪除的對象。沒有用戶擁有的對象的概念(即任何用戶被允許操縱任何對象是重要的...這是一個免費的所有白板)多人白板競賽條件
我的問題是這個......如果兩個用戶試圖在同一時間對對象做不同的動作,即一個刪除它,另一個移動它,會發生什麼?
中只是讓消息正確NOW-經過,它就會完全不正常的。
一個想法是有它解決了誰擁有對象的控制,並沒有被允許,直到衝突解決發生的客戶方一個服務器端控制。衝突的解決可以基於先到先得的原則。
即使這種情況發生得非常快,小延時(〜50-300ms)是不可接受的,因爲運動必須在客戶端瞬間。例如,不要操縱對象,而是想象一支筆。因爲這會拖延到他們已經開始繪畫......不太好!
另一個想法是有一個「請求控制」按鈕,這如之前詢問控制服務器側延伸....同樣的想法,但現在它們不是由筆繪圖的初始延遲受挫。這也是不太好,雖然,因爲他們必須打的按鈕,直到他們可以做任何事情,而這個白板的真正含義爲孩子們......
任何其他解決辦法? :)
我喜歡你如何指出衝突只存在於特定的財產變化!即顏色和位置不是衝突,但位置和位置或位置和刪除是...... – davidkomer 2011-06-05 09:44:51
我猜只是最簡單的級別,如果服務器給出對象的消息,我可以保持歷史並「跳回並禁止控制」 -locked ...... – davidkomer 2011-06-05 09:46:17
一個簡單的解決衝突的類似屬性操作將時間戳的用戶交互和維護最新的變化(或者如果對象被刪除只是不停地刪除) – dain 2011-06-05 13:57:42