【问题标题】:Push data instantly to frontend when adding data to database (Ushahidi)将数据添加到数据库时立即将数据推送到前端(Ushahidi)
【发布时间】:2016-11-15 15:05:22
【问题描述】:

当有人添加帖子而不刷新 Ushahidi(开源网站项目)中的页面时,我想实时更新我的​​地图视图。它的后端使用 php(Kohana 框架)和 MySQL 数据库,前端使用 AngularJS。可能没有关于此的内置机制。所以我想知道哪些材料是合适的。

首先,我需要使用事件驱动库,例如this,来检测数据库更改。二、如何检测数据库变化。三、使用基于web socket的lib,如Socket.io,实时推送数据到前端展示。

我已经阅读了 Laravel php 框架中的 echo 功能,该功能似乎适合这一点,但在 Kohana 中却没有。这个系统中是否有更好的方法或一些好的参考资料?谢谢

【问题讨论】:

    标签: php mysql websocket kohana ushahidi


    【解决方案1】:

    让我们从一个更简单的事情开始:发送通知。 PHP 不适合作为 WebSocket 服务器(尽管您可以这样做)。最好在 Node 中编写并通过 PHP 通知它。 WS 服务器将继续发送通知。您也可以使用可以做到这一点的商业服务。

    检测数据库中的变化:如果应用程序已正确编写(即它使用ORM,而不是原始INSERT/UPDATE/DELETE/REPLACE 查询),那么修改save 方法就足够了使用https://docs.koseven.ga/guide-api/ORM#changed 数据。

    如果有多个原始查询,您可以手动处理它们。

    否则,您可以使用触发器。将记录标记为已更新(例如:将数据插入日志/通知表)。在 WebSocket 服务器中,您可以定期检查这些数据并通知接收者。

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多