是否存在可以通过Websocket连接同步任意两个对象的Javascript库或模式?
通过同步我的意思是将对象的每个属性复制到远程,当对象的任何属性在任何一端发生更改时,“更新”将被复制到“过时”对象。就像任何其他“双向同步”一样。
当然它应该能够透明地处理不断变化的带宽,并且即使上次同步操作失败(网络连接丢失或其他),也应该能够在有效的网络连接时进行同步。
答案 0 :(得分:0)
这可以递归地将属性从一个对象附加到另一个对象,如下所示:
jQuery.extend(true, destinationObject, sourceObject)
如果更改可能还包括删除,则需要树差异算法。如果您搜索它们,应该有JavaScript实现。
如果您的对象是“平坦的”,则可以jQuery.extend(destinationObject, sourceObject)
。也许值得看看undercoreJS,它具有union
,difference
和intersection
等功能。
websocket实现不应该特别复杂。只需定义setter,并可能添加一个超时,因此自上次更改之前需要经过x秒。