hen*_*ald 24 javascript node.js backbone.js socket.io nowjs-sockets
我刚刚进入backbone.js,我发现进展有点慢.我的主要问题是如何使用socket-io保持我的客户端和服务器端模型同步(技术上我现在使用now.js但应该应用相同的主体).
我认为最好的方法是覆盖同步方法,但是一些简单的建议会非常受欢迎.
Ray*_*nos 27
简单地覆盖,Backbone.sync以便它向socket.io发送消息,并告诉服务器上的相关骨干模型改变状态.
该解决方案的有趣部分是建立主 - 主关系.您需要确保对于任何客户端,他们只能"更新"服务器上具有"所有权"的模型状态,以避免黑客和服务器端状态损坏.
因此,对于每个客户端,他们有一个集合M,其中该客户端是M中所有模型的主人,并且具有集合S,其中该客户端具有S中所有模型的从属.
它只能强制更新M中模型的服务器,并且只有一个客户端应该具有M中的特定模型(或者您需要实现实体锁定/合并实现).
每当更新服务器上的模型时,您只需推送到在S中具有该模型的任何客户端(如果模型在M中用于多个客户端,则推送到在M中具有该模型的任何客户端).
很多想法需要进入控制/权限和所有权,一旦客户端POST/PUT/DELETE一些数据,通常由MVC控制器处理.
更好的方法是使用事件聚合器的事件驱动架构.关于这个主题的精彩读物是以下Derick Bailey的文章=> 从WebSockets中解耦Backbone应用程序
它保持了高度分离的东西,使得更容易测试和更改websockets lib,并且最重要的是,它不会破坏覆盖Backbone的内部结构,如sync()
| 归档时间: |
|
| 查看次数: |
20692 次 |
| 最近记录: |