wyrihaximus/ratchet-model-push

允许模型在写入操作中将数据推送到 wyrihaximus/ratchet。

安装次数: 61,310

依赖者: 0

建议者: 0

安全性: 0

星标: 2

关注者: 4

分支: 1

开放问题: 3

类型:cakephp-plugin

0.1.0 2015-01-22 16:07 UTC

README

Build Status Latest Stable Version Total Downloads Code Coverage License PHP 7 ready

CakePHP Ratchet 插件 提供模型推送。

Ratchet 是什么

Ratchet for CakePHP 将 Ratchet websocket 服务器引入 CakePHP。Websockets 允许您在应用程序和访客之间实现近乎实时的通信。例如,使用 可推送行为 通知页面数据库中相关记录已被更新。

入门指南

1. 要求

此插件依赖于以下插件及其依赖关系,并由 composer 在稍后拉入

2. Composer

请确保您已安装并配置了 composer,并在引导过程中注册了自动加载器,如 此处 所述。请确保您有一个 composer.json 文件,并将以下内容添加到您的“required”部分。

composer require wyrihaximus/ratchet-model-push 

设置完毕后,运行 composer install

3. 设置插件

请确保在引导文件中加载 RatchetModelPush 及其所有依赖插件及其依赖关系,并正确设置。

4. 设置行为

以下代码示例将可推送行为附加到 WyriProject 模型。事件按照以下顺序执行

  1. 在创建新记录时触发,绑定到 WyriProject.created
  2. 在更新任何记录时触发,绑定到 WyriProject.updated
  3. 在更新任何记录时触发,绑定到 WyriProject.updated.{id},其中 {id} 是该记录的 id。因此,如果 id1,则绑定到 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

在此特此免费许可,任何人只要获得此软件及其相关的文档文件(“软件”)的副本(“软件”),就可以不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件

上述版权声明和本许可协议应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于关于适销性、适用于特定目的和不侵犯知识产权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是由于合同行为、侵权或其他原因引起的,无论该索赔、损害或其他责任是否与软件或软件的使用或其他方式相关。