2011-03-20 24 views
0

我已经决定创建一个基于Web的聊天系统的经验。我正在使用AJAX(jQuery),PHP和JSON的混合来传输数据。现在我开始思考某些事情了,我已经开始思考。创建一个基于Web的聊天系统的几个问题

现在,我使用javascript将最后加载的消息ID发布到查询数据并在json中回显新帖子的php文件中,然后在页面上按顺序显示这些帖子。但是,这些日期并不反映用户的当前时间。由于我使用PHP获取当前时间,因此我不知道如何向用户显示考虑到他们的时区的正确时间。其次,我如何将这个方法的在线名单加入?我可以创建一个单独的表并在用户创建会话时更新它,并在会话结束时删除它们的名称;但如果他们没有正确关闭呢?我是否应该将上次发送的消息添加到表中,并且如果距上次消息约5分钟后才认为用户已断开连接?最后,我用来收集新帖子的方法是否有效?有没有更好的方法去做这件事?我很欣赏任何输入。

回答

0

这似乎相关:Determine a User's Timezone

我打算让你去那里的代码剪断,所以你给予适当的信贷与upvotes。

我得到的印象是,Javascript是获取该数据的最佳/最简单的方式。

我可能会做的是使用格林威治标准时间或其他固定的时区为您的所有服务器的东西,然后只是调整与js一旦它击中浏览器根据他们的时区。无论是在会话开始时收集一次,还是相应地调整输出。这两种方式都可能有优势。

编辑: 哦,是的,关于“谁在线”,我认为你是在正确的方向前进。我可能会建议2个列表。 “谁在活跃”和“谁最近活跃”

这样你可以在5分钟后让人处于不活动状态,并且在10分钟之后认为他们已断开连接。我想这是相同的,但对我来说似乎更准确。

另一种选择是设置一个ajax请求,以便每分钟左右自动触发一个请求。当他们停止时,你知道用户已经离开了。

+0

谢谢,我会给你建议的一个镜头。 – AllofHumanity 2011-03-20 04:24:44