我正在用流星玩实时白板。我的第一次尝试效果很好,如果您打开 2 个浏览器并在其中一个中绘制,另一个会在几毫秒内更新(http://pen.meteor.com/stackoverflow)
现在,我的第二个项目是制作无限实时白板。现在主要的变化是所有的行都按区域分组,查看者只订阅可见区域中的行。现在有 5 秒 (!) 当您在一个浏览器中执行某项操作以查看它在另一个浏览器中发生时 ( http://carve.meteor.com/love )。
我尝试在 mongo 数据库中为确定区域的字段添加索引。我尝试只为整行更新集合(而不是每次像我的第一个项目一样推送一个新点)。在滚动或缩放看板时,我尝试添加超时以不经常订阅。
没有任何变化,总是延迟 5 秒。
我在本地工作时没有这种延迟。
这是负责订阅可见区域行的代码:
subscribeTimeout=false;
Deps.autorun(function () {
var vT=Session.get("visible_tiles");
var board_key=Session.get("board_key");
if (subscribeTimeout) Meteor.clearTimeout(subscribeTimeout);
subscribeTimeout=Meteor.setTimeout(subscribeLines, 500);
});
function subscribeLines() {
subscribeTimeout=false;
var vT=Session.get("visible_tiles");
console.log("SUBSCRIBE");
Meteor.subscribe("board_lines", Session.get("board_key"),vT.left,vT.right,vT.top,vT.bottom, function() {
console.log("subscribe board_lines "+Session.get("board_key"));
});
}