Javascript Meteor.jd,具有复杂pusblish/订阅规则的实时延迟?

Javascript Meteor.jd,具有复杂pusblish/订阅规则的实时延迟?,javascript,canvas,drawing,meteor,real-time,Javascript,Canvas,Drawing,Meteor,Real Time,我在用meteor玩实时白板。我的第一次尝试运行得很好,如果打开两个浏览器并绘制其中一个,另一个会在几毫秒内更新() 现在,我的第二个项目是制作一个无限实时白板。现在的主要变化是,所有行都按区域分组,并且查看器只订阅可见区域中的行。现在,当你在一个浏览器中做某件事,而在另一个浏览器中看到它发生时,需要5秒钟(!) 我尝试在mongo数据库中为确定区域的字段添加索引。 我尝试只更新一整行的集合(而不是像我第一个项目那样每次推一个新点)。 我尝试过在滚动或缩放棋盘时添加一个不太频繁订阅的超时 没有任

我在用meteor玩实时白板。我的第一次尝试运行得很好,如果打开两个浏览器并绘制其中一个,另一个会在几毫秒内更新()

现在,我的第二个项目是制作一个无限实时白板。现在的主要变化是,所有行都按区域分组,并且查看器只订阅可见区域中的行。现在,当你在一个浏览器中做某件事,而在另一个浏览器中看到它发生时,需要5秒钟(!)

我尝试在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"));
    });
}

我做系统管理员已经15年了。如果不运行代码,这听起来像是对meteor.com服务器强加的限制。他们可能会延迟资源,这样每个人都能得到公平的份额。我会发布到另一台服务器,比如heroku,以便轻松部署,或者手动发布到另一台服务器,比如linode或我最喜欢的Joyent。或者,您可以尝试直接联系meteor.com,询问他们是否/如何限制资源使用


由于代码在本地快速/即时运行,您应该可以在良好的网络上看到良好服务器的次秒响应时间。

谢谢Michael,我会问。我看到的延迟比5秒要大得多。我有一个与meteor类似的应用程序,其行为几乎相同。我已经建立了一个聊天应用程序,它不是很“实时”。告诉我你发现了什么。