【发布时间】:2014-01-30 06:29:35
【问题描述】:
我正在建立一个按时间顺序显示帖子的聊天室。我目前是在“entry”模板的submit事件上设置客户端js中用户发帖的时间:
Template.entry.events = {
'submit': function(e){
e.preventDefault();
//console.log(this.userId());
var user = Meteor.user();
var roomName = Session.get('currentRoomName');
Messages.insert({
user: user,
room_name: roomName,
message: $('#message').val(),
created_on: new Date().getTime()
});
$("#message").val('');
}
};
我的问题是,因为这个日期是在客户端上设置的,如果用户更改了他们机器上的时间,它将被记录为允许用户在当前对话之前或之后发布。理想情况下,我可以在收到新的聊天条目后更新服务器上的 created_on 时间,以反映服务器上当前的 UTC 时间并更正输入的任何值。我仍然希望有时间在客户端延迟补偿等。
我已经阅读了很多关于 Meteor 的文档,我怀疑我可能会使用 .observe() 来解决这个问题,但我对 Meteor 和 Mongodb 都是新手。观察条目集合中的每个文档会不会很疯狂?是否可以只观察新条目?
我也在使用 auth 分支 - 不确定这是否会有所不同。
如果聊天室中有很多用户,this non-question 最终可能会相关。
抱歉,如果这是我刚刚错过的 Mongo/Meteor 中超级简单的事情。
【问题讨论】:
标签: javascript mongodb meteor