gpt4 book ai didi

PHP Websockets Mysql 发布/订阅

转载 作者:行者123 更新时间:2023-11-29 00:16:42 26 4
gpt4 key购买 nike

我开始了这个“疯狂”的项目,它背后的想法很清楚:有一些软件可以写入 MySQL 数据库。查询之间的间隔为 1 秒。现在我需要一个 Web 界面来加载这些数据库记录,并在新记录发生时继续显示它们。我应该使用的技术是 PHP 和 HTML5 WebSockets。我找到了这个不错的图书馆 Ratchet我认为这符合我的需要,但是有一个问题,我不确定如何通知 PHP 脚本,或者在发生 MySQL 查询时向正在运行的 PHP WebSockets 服务器发送消息。现在我可以使用 Comet并每秒发送一次数据库记录请求,但随后它击败了我应该使用的 WebSokets。所以我真正需要的是 MySQL Pub/Sub系统。我读过 MySQL triggers但我发现它存在一些安全风险,并且认为这种情况下的安全性并不是一个真正的问题,因为系统将在 VPN 中被隔离并且只有少数特定的人会使用它,我仍然想解决所有可能的问题以正确的方式发布和做每一件事情。
然后是MySQL代理,我对此一无所知,但如果它能帮助我实现我的目标,我会非常考虑使用它。所以简而言之,问题是当 MySQL 查询发生时,我如何通知或运行 PHP 脚本?

最佳答案

我会稍微分开这些问题。

您肯定需要某种发布/订阅系统。据我了解,Redis 可以充当一个系统,但我从未为此使用过它,也无法就使用什么系统提出具体建议。无论如何,我不会将它直接附加到您的数据库。出于维护目的,您肯定需要对数据库执行一些数据库操作,并且您不希望它向您的客户端刷新一百万行,因为它基于触发器。选择你的发布/订阅系统,独立于你在客户端做什么以及你在用你的数据库做什么。决定因素应该是它如何与您的服务器端语言(在本例中为 PHP)交互。

既然您的 pub/sub 已经不在了,我将构建一个 API 服务器或各种摄取系统,从这些交易的来源获取数据。它将处理这些并发布消息,同时将它们插入数据库。

接下来,您需要一种方法将其提供给客户。正如您所发现的,Web Sockets 是一个不错的选择。您可以使用 PHP 或任何其他工具来执行此操作。我更喜欢带有 Socket.IO 的 Node.js,它为不支持 Web 套接字的客户端提供了一个很好的回退到长轮询 JSON(以及其他)。无论您在此处选择什么,都需要在您的发布/订阅上监听消息并为客户端发送正确的数据(可能会删除一些客户端不需要立即发布的信息)。

关于PHP Websockets Mysql 发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22743812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com