次のように、発行関数で最新の 200 件のメッセージのリストを取得しています。
Messages.find({
room: roomname
}, {
sort: {time : -1},
limit: 200
}),
これにより最新のものが最初になることはわかっていますが、最も古いものを最初にしたいので、クライアントで検索を行うときは、別の方法で並べ替えます。
messages: Messages.find({}, {sort: {time: 1}})
新しいメッセージを入力するときを除いて、すべてが正常に表示されます。すべての古いメッセージを含むリストの最後に挿入されます。挿入がサーバーへの往復を行った後、リストの正しい末尾にジャンプします。
制限とクライアント側の並べ替えをなくして、すべてのメッセージを正しい順序でクライアントに渡すと、この問題は発生しません。
レイテンシー補正中にメッセージを正しい場所に表示するにはどうすればよいですか?