通过Websocket同步任意两个Javascript对象

Synchronize any two Javascript objects over Websocket

本文关键字:Javascript 对象 任意两 Websocket 同步 通过      更新时间:2023-09-26

是否有一个Javascript库或模式,将同步任何两个对象在Websocket连接?

通过同步,我的意思是将对象的每个属性复制到远程,当对象的任何属性在任何一端发生变化时,"更新"被复制到"过期"的那个。就像其他"双向同步"一样。

当然,它应该能够透明地处理带宽的变化,并且应该能够在有工作网络连接时进行同步,即使上次同步操作失败(网络连接丢失或其他)。

可以递归地将属性从一个对象附加到另一个对象,如下所示:

jQuery.extend(true, destinationObject, sourceObject)

如果更改可能还包括删除,则需要使用树差分算法。如果你搜索的话,应该有可用的JavaScript实现。

如果你的对象是"平的",你可以只做jQuery.extend(destinationObject, sourceObject)。underscoreJS也值得一看,它具有uniondifferenceintersection等功能。

websocket的实现不应该特别复杂。只需定义setter,并可能添加一个超时,所以x秒需要经过上次更改之前的上传。