同步两个客户端之间的时间?

时间:2011-04-05 10:38:25

标签: php zend-framework synchronization chat


我正在使用zend框架和PHP来开发一个Web应用程序,我有以下要求:

  1. 当client1尝试与客户端2聊天时,会出现一个确认框,显示“您的聊天请求已发送给客户端2.请稍候......”剩余时间以秒为单位60开始的几秒钟。它应该每秒减少1。

  2. 然后同时Client2会收到一个确认框,说“Client1请求与您聊天。想接受......?”剩余时间以秒为单位。如果Client2单击是,则应开始聊天会话。如果客户端2单击“否”,则Client1和Client2两侧的“确认”框将消失。

  3. 如果Client2不接受来自Client1的聊天请求且剩余时间达到0,则聊天会话不应启动,并且双方应关闭确认框。

  4. 剩下的时间应该在两边同步。


  5. 希望我足够清楚。请建议一些帮助我的代码或网站。

    提前致谢......

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

我从未使用过Zend框架,但我建议您将数据库存储在客户端想要联系其他客户端的时间戳和超时时间戳中,然后让客户端定期检查数据库。