两个客户端之间如何同步时间?

3
我正在使用PHP的Zend框架开发Web应用程序,有以下要求:
  1. 当客户端1尝试与客户端2聊天时,应出现确认框,显示“您的聊天请求已发送到客户端2,请稍候...”,开始时剩余时间为60秒。并且每秒减少1秒。

  2. 同时,客户端2应该收到一个确认框,显示“客户端1请求与您进行聊天。是否接受...?”,并显示剩余时间。如果客户端2点击“是”,则聊天会话将开始。如果客户端2点击“否”,则确认框在客户端1和客户端2两侧都应消失。

  3. 如果客户端2不接受来自客户端1的聊天请求,并且剩余时间达到0,则聊天会话不应开始,确认框应在两侧关闭。

  4. 剩余时间应在两侧同步。

希望我表述清楚了。请建议一些代码或网站,以便帮助我。
提前感谢......
2个回答

1

同步时间完全取决于网络速度。
如果任何一个客户端的网络速度较慢,它将失败或存在一些延迟。

根据应用程序的实际情况,有三种方法。(升序)
1. 每次请求时存储在数据库中。
2. 存储在文件或会话中,并安排转储到数据库中。
3. 使用Memcache存储在内存中,以便不会消耗任何时间进行数据库查询或文件打开(文件打开时间可以忽略,但请记住第三点是针对非常关键的情况)。稍后安排将其转储到数据库中。

在所有情况下,您必须考虑ServerTime而不是客户端PC时间。(是的,您可以使用Javascript从浏览器获取它)


0

我从未使用过Zend框架,但我建议您将要联系另一个客户端的客户端存储在数据库中,并为超时设置一个时间戳,然后定期让客户端检查数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接