umich-its-tl/viadutoo

Viadutoo:Caliper事件数据的缓存代理端点

1.1.0 2016-06-13 17:17 UTC

This package is auto-updated.

Last update: 2024-09-17 23:17:27 UTC


README

关于

Viadutoo(源自葡萄牙语中的“viaduto”,发音为“vee-uh-DOO-too”或IPA:[vi.a.dˈu.tʊ])是一种Caliper事件数据的缓存代理端点。作为一个代理,它的目的是尽可能快地接受来自传感器的Caliper事件有效负载,然后将它们重发到预配置的上游端点。如果上游端点由于某些原因无法接受事件有效负载,缓存功能将事件数据存储在数据库中以供将来处理。

需求

  • PHP 5.4或更高版本
  • 以下PHP HTTP客户端扩展之一
    • curl(通常PHP解释器已经包含此项)
    • pecl_http
  • Composer(不是强制要求,但强烈推荐)

用法

  • 按照以下方式更新项目根目录下的composer.json文件

    • require部分应包含以下内容

      {
          "require": {
              "php": ">=5.4",
              "umich-its-tl/viadutoo": "1.1.0"
          }
      }
    • 如果没有指定仓库,Composer将从Packagist(https://packagist.org.cn/packages/umich-its-tl/viadutoo)安装Viadutoo。但是,为了将GitHub仓库指定为源,请在repositories部分包含以下内容

      {
          "repositories": [
              {
                  "type": "vcs",
                  "url": "https://github.com/tl-its-umich-edu/viadutoo"
              }
          ]
      }

      这是指定您自己的仓库的一种方法,例如,如果您想修改自己的Viadutoo分支。您需要指定您自己的仓库的URL。

  • 使用以下命令使用Composer安装包

    composer install

    Composer将创建vendor目录以保存该包和其他相关信息。

  • Composer将创建PHP类来帮助您将Viadutoo(以及它加载的任何其他包)加载到您的应用程序中。在您的PHP代码中,您可以像这样使用它

    /*
     * If necessary, use set_include_path() to ensure the directory
     * containing the "vendor" directory is in the PHP include path.
     */
    require_once 'vendor/autoload.php';  // Composer loader for Viadutoo, etc.
  • 像这样在您的PHP代码中初始化和使用Viadutoo

    $proxy = (new MessageProxy())
        ->setTransportInterface(
            (new CurlTransport()) // Recommended transport with cURL, supports Basic Auth and OAuth 1.0
                ->setAuthZType(CurlTransport::AUTHZ_TYPE_OAUTH1, 'OAuth 1.0 key', 'OAuth 1.0 secret') // Optional authZ
        )
        ->setEndpointUrl('http://example.com/endpoint')
        ->setTimeoutSeconds(10)
        ->setAutostoreOnSendFailure(true)
        ->setStorageInterface(
            new MysqlStorage(
                'mysql.example.org', 'dbUser', 'dbPassword',
                'dbName', 'viadutoo_events'
            )
        );
    // ...
    try {
        $proxy
            ->setHeaders($headers)
            ->setBody($jsonBody)
            ->send();
    } catch (Exception $exception) {
        error_log($exception->getMessage());
    }

    有关在应用程序中使用Viadutoo的更详细示例,请参阅public/index.php

示例

一个示例应用程序包含在public目录中。执行方式如下

cd public
php -S 127.0.0.1:8989

该应用程序被编写为将所有数据发送到http://lti.tools/caliper/event?key=viadutoo。只需配置Caliper传感器将事件发送到http://127.0.0.1:8989/,它们将被发送到lti.tools端点。