十月CMS实时更新数据

Posted

技术标签:

【中文标题】十月CMS实时更新数据【英文标题】:October CMS update data in real time 【发布时间】:2017-03-23 09:21:45 【问题描述】:

October CMS 是否有一些插件可以实时更新现场不同字段的数据?可能有一些 10 月的 ajax api 或类,其中它是根据 DB 更改事件实现的? 例如,如果此时其他人进行了更改,我需要更新插件管理面板中的字段。 不幸的是,链接到Real time chat plugin 不起作用。 但就我而言,我不需要聊天解决方案。我不想改造它。如果数据库相对于它们有一些变化,只需要标记应该更新的文件。如果它以简单的方式实现,那就太好了。否则我必须实现一些长轮询/websocket api/class。

【问题讨论】:

【参考方案1】:

为了解决这个问题,我建议使用Pusher 他们有很好的免费计划。实施步骤是:

    创建推送器实例

    window.pusher = new Pusher('APIKEY', 
        cluster: 'eu',//some problems reported about eu cluster sometimes
        authEndpoint: '/pusher/auth'
    );
    

    创建私人频道,它将通知您有关更改。

    var channel = window.pusher.subscribe('private-notify');
    

    订阅该频道。这里将使用更新功能来更改您的任何界面。

    channel.bind('client-messagesent', function(data) 
       //change your interface
    );
    

    将有关其他用户更改的信息从后端推送到同一通道,触发事件以调用 (3) 中的函数。

    $pusher->trigger('private-notify', 'client-messagesent', $data);
    

首先,您需要包含一个 CDN 推送脚本。这里有很多教程https://pusher.com/tutorials

OctoberCMS 也有 Pusher 插件,但我从头开始设置 pusher,因为那个 plusign 添加了很多多余的东西。

【讨论】:

感谢您的回答。是的,这是非常简单的解决方案以及 firebase 或其他一些第三方实时数据服务。但我想使用内置工具和自己的数据库,我认为这是更正确的方法。在我看来,最简单的方法是扩展 october 的 ajax api 并实现长轮询方法(我的选择)。更复杂的选择 - 是将 october 和一些 websocket 框架(如棘轮)结合在一起。如果开发人员提前解决这个问题,那就太好了。 我也很高兴能找到解决此问题的更多方法。如果您将实施一些更好的方法发布,请在此处进行一些注释。提前致谢)

以上是关于十月CMS实时更新数据的主要内容,如果未能解决你的问题,请参考以下文章

从输入到数据库的十月CMS

会话数据未保存在插件控制器十月 CMS 中

十月CMS发布表格

408考研王道考研十月份每日一题(待更新)

帝国cms后台改东西前台无反应

十月 CMS 组件加载布局