想象一下,多人白板可以同时吸引多人参与。为了简单起见,可以说白板上有一个可以被任何用户移动或删除的对象。没有用户拥有的对象的概念(即任何用户被允许操纵任何对象是重要的...这是一个免费的所有白板)多人白板竞赛条件
我的问题是这个......如果两个用户试图在同一时间对对象做不同的动作,即一个删除它,另一个移动它,会发生什么?
中只是让消息正确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