在 php 中实时接收 mysql 更新

Posted

技术标签:

【中文标题】在 php 中实时接收 mysql 更新【英文标题】:receive mysql updates in php realtime 【发布时间】:2014-04-19 13:30:05 【问题描述】:

我目前正在开发一个需要实时更新的体育网络应用程序。

在应用程序中,每个法官都需要根据浏览器中的表格输入一些记录。在这张表中,他们输入成绩并等到所有其他评委输入他们的成绩。保存所有成绩后,应用程序应切换到下一个表,评委需要填写该表。

我想使用 html5 服务器发送消息技术,因为我不太喜欢池客户端。

我现在遇到的问题是如何在 php 中获取 mysql 表的实时更新以将状态发送给客户端。

或者我应该在 php 脚本中使用一个循环,它总是在短暂睡眠后向数据库询问更新。 db-server 的负载会很大吗?

【问题讨论】:

【参考方案1】:

对于这种特殊情况,我建议您尝试 Node-JS。 JS 初学者可能很难进入,但据我所知,这是解决(pseudo-)实时问题的好方法。

Node.js 提供了处理自动化流程的良好能力。

【讨论】:

所以我应该在 node.js 中创建一个小网络服务器,仅用于实时功能? 如您所说,您正在使用 PHP - 您应该已经运行了一个网络服务器,不是吗? 如果您愿意尝试一下,那么对于开始使用 Node.js 就足够了 - node.js 还提供了更多功能 - 实时数据处理只是其中之一。另一个解决方案是使用 PHP 的 Socket.io:***.com/questions/6229472/socket-io-from-php-source 如果这仍然不能满足您的需求,您可以试试elephant.io。它将 socket.io 与 PHP 和 Node.js 结合在一起 非常感谢。我会尝试一下elephant.io。这就是我搜索的内容。对于所有阅读本文的人,我现在将通过以下方式解决它:node.js 托管一个允许用户连接和订阅 redis 的小型服务器。使用 redis,我可以通过 nodjs websocket 推送通知。整个过程从 php 中的 mysql 更新开始,并且 php 将状态通过大象.io 发送到 nodejs,将 nodejs 发送到 redis,然后从 redis 通过 nodejs 发送到客户端。 @xcy7e 我希望这是正确的方法【参考方案2】:

您应该阅读并使用套接字实现推送通知。当有一些记录添加、更改等时,它们会通知您,因此您可以相应地更改您的程序工作流程。

【讨论】:

以上是关于在 php 中实时接收 mysql 更新的主要内容,如果未能解决你的问题,请参考以下文章

PHP:如何在一个表单操作中实现图片与文字一起传递

我希望您将新信息(以 JSON 格式)异步发送到 PHP 页面。 PHP接收新数据并更新数据库

PHP 无法从 ActionScript3 接收参数

PHP接收外部发来的数据

新手求助如何在js上使用ajax接收php读取的mysql数据并输出

接收新的FCM消息(前台和后台)时Android应用程序崩溃