我對同一主題有另一個最近的問題(後人: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