Ich entwickle eine Website mit Winkelmeteor und ich habe ein seltsames Problem konfrontiert. Auf jeder Seite habe ich einen Chatblock, die Nachrichten werden in der Sammlung chatMessages gespeichert und korrekt angezeigt. Das Problem ist, dass jedes Mal, wenn ich den aktuellen Benutzer bearbeite (manuelle Mongo-Dokument-Edition oder Aktualisierung innerhalb der Methode des Meteors), meine App alle Abonnements entfernt. Dies führt dazu, dass Nachrichten nicht mehr im Chat verfügbar sind. Aber nicht nur Chat-Nachrichten verschwinden. Ich habe this piece of code verwendet, um zu verstehen, was die Ursache des Problems ist, aber ich kann es kaum verstehen. Hier sind die interessantesten Teile von Browser-Konsolen-Ausgabe:Immer wenn ich den aktuellen Benutzer aktualisiere, werden alle Sammlungen geleert (eigentlich nicht)
// 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"
}
Übrigens, Daten werden nicht aus Mongo entfernt. Wenn ich die Seite aktualisiere, erscheinen Chat-Nachrichten und alles andere wieder.
Jede Hilfe wäre willkommen.
Es wird einfacher, den Code zu betrachten. – vijayst