wyrihaximus / ratchet-model-push
允许模型在写入操作时将数据推送到 wyrihaximus/ratchet。
Requires
This package is auto-updated.
Last update: 2024-09-03 10:08:04 UTC
README
为 CakePHP Ratchet 插件 提供模型推送功能。
什么是 Ratchet
Ratchet for CakePHP 将 Ratchet websocket 服务器引入 CakePHP。Websockets 允许您在应用程序和访客之间实现近乎实时的通信。例如,使用 Pushable 行为 通知页面相关的数据库记录已更新。
入门指南
1. 要求
此插件依赖于以下插件及其依赖项,并在稍后通过 composer 拉取
2. Composer
请确保您已安装并配置了 composer,并在引导过程中注册了自动加载器,如 此处 所述。请确保您有一个 composer.json 文件,并在您的 required 部分添加以下内容。
composer require wyrihaximus/ratchet-model-push
设置完成后,运行 composer install
。
3. 设置插件
请确保在您的引导中加载 RatchetModelPush
以及它所依赖的所有插件及其依赖项,并正确设置。
4. 设置行为
以下代码示例将 Pushable 行为附加到 WyriProject
模型。事件按照以下顺序执行
- 在创建新记录时触发,并绑定到
WyriProject.created
。 - 在更新任何记录时触发,并绑定到
WyriProject.updated
。 - 在任何更新记录时触发,并绑定到
WyriProject.updated.{id}
,其中{id}
是该记录的id
。因此,如果id
是1
,则绑定到WyriProject.updated.1
。
数据以一维数组的形式传递到事件中。
<?php class Model extends AppModel { public $actsAs = array( 'RatchetModelPush.Pushable' => array( 'events' => array( array( 'eventName' => 'WyriProject.created', 'created' => true, ), array( 'eventName' => 'WyriProject.updated', 'created' => false, ), array( 'eventName' => 'WyriProject.updated.{id}', 'created' => false, 'fields' => true, ), ), ), ); }
5. 客户端
在客户端,您只需要订阅事件
cakeWamp.subscribe('Rachet.WampServer.ModelUpdate.WyriProject.updated.1', function(topicUri, event) { // Do your stuff with the data });
注意:您订阅的实际事件以 Rachet.WampServer.ModelUpdate.
为前缀。
请确保在您的视图中包含 JavaScript 文件及其依赖项
echo $this->Html->script(array( 'Ratchet.when/when', 'Ratchet.autobahn/autobahn', 'Ratchet.cake-wamp' ));
插件许可证
(MIT 许可证)
版权 © 2012 - 2013 Cees-Jan Kiewiet
特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件提供方使用软件的权利,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任源于合同、侵权或其他方式,与软件或软件的使用或其他交易有关。