我刚刚进入ebrian.js,发现进度有点慢。我的主要问题是研究如何使用socket- io使客户端和服务器端模型保持同步(从技术上讲,我正在使用now.js,但应使用相同的主体)。
我认为最好的方法是重写sync方法,但 确实会 欢迎一些简单的建议。
只需进行覆盖,Backbone.sync以便它在socket.io下发送消息,并告诉服务器上的相关boundaryjs模型更改状态。
Backbone.sync
该解决方案有趣的部分是建立主控关系。您需要确保对于任何客户端,他们只能“更新”其具有“所有权”的服务器上的模型状态,以避免黑客和服务器端状态损坏。
因此,对于每个客户端,他们有一个集合M,其中该客户端是M中所有模型的主模型,并具有一个集合S,其中该客户端具有S中所有模型的从模型。
它只能在M中的模型服务器上强制更新,并且只有一个客户端在M中具有特定模型(或者您需要实现可靠的锁定/合并实现)。
每当服务器上的模型更新时,您只需将其推送到在S中具有该模型的任何客户端(如果该模型在多个客户端的M中,则将其推送到在M中具有该模型的任何客户端)。
一旦客户端POST / PUT / DELETE一些数据,通常需要由MVC控制器处理的控制/权限和所有权方面需要很多考虑。