私は角の流星でウェブサイトを開発していますが、私は奇妙な問題に直面しました。私がチャットブロックを持っているすべてのページで、メッセージはコレクションchatMessagesに保存され、正しく表示されます。問題は、現在のユーザー(mongoドキュメントの手動編集または流星のメソッド内での更新)を編集するたびに、私のアプリがすべてのサブスクリプションを削除することです。その結果、チャットからメッセージがディスパッパされます。しかし、チャットメッセージは消えるだけではありません。私はthis piece of codeを使って問題の原因を理解しましたが、ほとんど理解できません。ここでは、ブラウザコンソールの出力から最も興味深い部分があります:現在のユーザーを更新するたびに、すべてのコレクションがフラッシュされます(実際にはありません)。
// On page load
send Object {
msg: "sub",
id: "EPgQwMiDggM7wafCN",
name: "chatMessages",
params: Array[0]
}
receive Object {
msg: "added",
collection: "chatMessages",
id: "G6tv76ZSJYXmnsrAY",
fields: Object
}
// Calling 'createArenaRoom' method
send Object {
msg: "method",
method: "createArenaRoom",
params: Array[1],
id: "8",
randomSeed: "516b5128615f1c7849f2"
}
// User updated
receive Object {
msg: "changed",
collection: "users",
id: "sQnaLPj2FvH692rQM",
fields: Object
}
// ??? WHY ????
send Object {
msg: "unsub",
id: "EPgQwMiDggM7wafCN"
}
receive Object {
msg: "removed",
collection: "chatMessages",
id: "G6tv76ZSJYXmnsrAY"
}
receive Object {
msg: "nosub",
id: "EPgQwMiDggM7wafCN"
}
ところで、データはmongoから削除されません。ページを更新すると、メッセージがチャットされ、他のすべてが再び表示されます。
ご協力いただければ幸いです。
コードを見る方が簡単です。 – vijayst