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

发布于 2024-10-30 06:13:37 字数 505 浏览 1 评论 0原文


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

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

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

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

  4. 剩余时间应在双方同步。


希望我说得足够清楚。请建议一些对我有帮助的代码或网站。

提前致谢......


I am using zend framework with PHP to develop a web application where I have following requirements:

  1. When client1 tries to have a chat with the client2 a Confirmation box should appear saying "Your chat request has been sent to the Client 2. Please wait....." with remaining time in seconds that is 60 seconds at the start. And it should decrease by 1 every second.

  2. Then At the same time the Client2 should get a Confirmation box saying "Client1 requested a chat session with you. Wanna accept...?" with remaining time in seconds. If Client2 clicks on Yes then the chat session should start. If Client 2 clicks on No then the Confirmation box at both side Client1 and Client2 should disappear.

  3. If Client2 does not accept chat request from the Client1 and the remaining time reaches to 0 then chat session should not start and the confirmation box should be closed at both side.

  4. The remaining time should be synchronized at the both side.


Hope I am clear enough. Please suggest some code or sites that helps me.

Thanks in advance......

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沉溺在你眼里的海 2024-11-06 06:13:37

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

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

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

Synchronizing time solely depends on network speed.
If any of the client is having slow network, it will fail or there will be some lag.

Depending on practicality of application there are three approach. (Ascending order)
1. Store in Database, each time a request is made.
2. Store in File or Session and Schedule a dump into Database
3. Store In memory using Memcache so that there wont be any time consumption for Database Query or File Opening (File opening time is negligible but remember 3rd point is for very critical situation). Schedule a dump into database at later time.

In all the cases you have to take ServerTime into consideration not the Client's PC time. (And Yes you can get it from browser using Javascript)

以歌曲疗慰 2024-11-06 06:13:37

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

I have never used the Zend framework, but I would suggest that you store in a database which client wants to contact another client and a timestamp for the timeout, and then have the clients periodically check the database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文