我对同一主题有另一个最近的问题(后人:Meteor.js Publishing and Subscribing?)。Meteor.js发布和订阅2
我有一个测试流星站点。我在根目录下的文件如下:
/**
* 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;
},
});
}
实际情况是,我做了编辑,并且停止工作(在开发服务器:本地主机:3000)。我回复了编辑,但我猜想事情有所改变,因为它不再有效。
客户端确实有权访问收藏(帖子加载列表),所以这不是问题。
问题是,第二个客户端提交一个帖子,它出现在列表中的第二个,然后消失。
这似乎与客户端没有发布权时类似的行为,但正如您可以在上面看到的,我已给出它。
当我在Chrome浏览器中访问JS控制台时,没有出现“访问被拒绝”或出现错误。
当我尝试从控制台添加帖子时,会发生同样的行为。闪烁,然后它消失了。
发生了什么事?这只是一个奇怪的流星故障?任何帮助赞赏。
编辑
OK,清楚一些内部流星毛刺; “流星重置”解决了代码本身无变化的问题。
所以我猜问题解决了!
编辑2
NOOOO。问题没有解决。它又出现了。
一旦帖子数量达到某个阈值,它似乎会拒绝他们,这使我相信它与“限制”有关。
任何帮助?
很可能,但如果这是真的不会刷新页面显示以前发布的帖子,而不是只有在达到限制之前张贴的帖子? – Aristides
@Aristides你说的是真的,如果你以这种方式订购这些帖子(并且不需要刷新)。但是如果你在浏览器的javascript控制台中运行'Posts.insert({whatever})',你会得到一个错误消息(插入失败?)?或者何时显示错误消息?收集是否有任何拒绝规则? –
不,没有插入失败的错误信息(实际上根本没有错误信息)。客户端只允许添加,不允许更新或删除。但即使添加也没有工作(如果它已超过100项)。 – Aristides