今天,我有了以下设置的想法。与nodejs
和express
一起创建socket.io
服务器。使用express,我将创建一个RESTful API,它连接到mongo。 BackboneJS或类似的将客户端连接到REST API
现在,每当mongodb(即其中感兴趣的数据)发生变化时,socket.io都会向客户端发送一个事件,该事件将为已经更改的数据提供一个courser。然后,客户端将触发对REST的适当AJAX请求,以便在需要的地方获取新数据。
因此,socket.io连接的行为类似于同步触发器。它将用于整个访问,也可以通过这种方式管理会话。所有有效载荷都将通过http发送。
优点:
缺点:
您怎么看?我没有想到的任何重大缺点?
答案 0 :(得分:6)
我同意@CharlieKey,您应该发送更新的数据而不是重新请求。
这正是塔正在做的事情:
使用套接字作为使用Ajax重新请求的触发器的缺点是每个连接的客户端都必须获取数据,因此如果您的站点上有100个人,那么每次数据更改时都会有100个HTTP请求 - 其中你可以重用套接字连接。
答案 1 :(得分:2)
我认为使用socket.io事件推送更新的数据比重新请求最新数据更好。更好的是,您只能推送修改后的数据,减少通过线路发送的数据量。整体虽然是一个有趣的想法
答案 2 :(得分:1)