0

我最近有另一个关于同一主题的问题(后代:Meteor.js Publishing and Subscribing?)。

我有一个测试 Meteor 站点。我在根目录的文件中有以下内容:

/** 
* Models
*/

Posts = new Meteor.Collection('posts');


posts = Posts;

if (Meteor.isClient) {

    Meteor.subscribe('posts');

}

if (Meteor.isServer) {

    Meteor.publish('posts', function() {
        return posts.find({}, {time:-1, limit: 100});
   });


    posts.allow({

        insert: function (document) {
            return true;
        },
        update: function () {
            return false;
        },
        remove: function () {
            return false;
        },

    });

}

发生的事情是我进行了编辑,但它停止了工作(在开发服务器上:localhost:3000)。我恢复了编辑,但我猜有些东西改变了,因为它不再起作用了。

客户端确实可以访问 Collection(加载的帖子列表),所以这不是问题。

问题是客户提交帖子的第二秒,它会在列表中出现一秒然后消失。

这似乎与客户端没有发布权时的行为相似,但正如您在上面看到的那样,我已经给出了它。

当我在 Chrome 中转到 JS 控制台时,没有出现“拒绝访问”或错误。

当我尝试从控制台“添加帖子”时,会发生同样的行为。一个闪烁,然后它就消失了。

这是怎么回事?这只是一个奇怪的流星故障吗?任何帮助表示赞赏。

编辑

好的,显然是某种内部流星故障;“流星重置”解决了代码本身没有变化的问题。

所以我想问题解决了!

编辑 2

不。问题没有解决。它又出现了。

一旦帖子数量达到某个阈值,它似乎就会拒绝它们,这让我相信这与“限制”有关。

有什么帮助吗?

4

1 回答 1

0

假设您的客户端在其本地缓存中有 100 个帖子。然后,当客户端插入新帖子时,它会直接插入客户端缓存(因此它现在包含 101 个帖子)并在后台将其发送到服务器。服务器将它插入到真实的数据库中,然后告诉客户端删除其中一个缓存的帖子,因为它应该只在它的缓存中存储 100 个帖子。这可能就是发生在你身上的事情。

于 2013-09-26T07:40:02.737 回答