|
如果同时有不止一个客户机(或服务器应用程序)可以改变你的共享对象的一个插槽中的数据的话,
则你必须实现一个冲
突解决策略。这里是一些范例:
使用不同的插槽
最简单的策略是为可能改变对象中数据的每一个播放器或服务器使用一个不同的插槽。例如,在一个
对某个聊天室中的用
户进行跟踪的共享对象中,为每一个用户提供一个插槽并使用户只能修改他自己的插槽。
指派一个拥有者
一个更复杂的策略是在一个有限的时间周期内把一个单个的客户机定义成一个共享对象的某个属性的
拥有者。你可以通过
编写服务器代码来创建一个“锁定”对象,一个客户机可以在这个“锁定”对象中请求一个插槽的所有权。如果
服务器报告这
个请求是成功的,则这个客户机就会知道它将是改变这个共享对象中的数据的唯一的客户机。
通告客户机
当服务器拒绝一个客户机对共享对象的一个属性的改变请求时,SharedObject.onSync事件处理器会通告
这个客户机改变被
拒绝了。因此,一个应用程序可以提供一个用户界面,以便可以让用户解决这个冲突。如果数据很少被改
变的话,比如,一个
共享的地址簿,这种技术会工作的很好。如果一个同步冲突发生的话,用户可以决定是要接受还是拒绝这
个改变。
共享的地址簿,这种技术会工作的很好。如果一个同步冲突发生的话,用户可以决定是要接受还是拒绝这
个改变。
接受某些改变并拒绝另一些改变
一些应用程序可以在一个“先来先服务”的基础上接受改变。当用户可以通过重新提交改变(如果某些
其他人的改变先于
他们的话)来解决冲突时这种方式会工作的最好。 |
|