cumulati/opentok-laravel

OpenTok PHP SDK 的 Laravel 扩展包

1.3.0 2019-10-17 16:14 UTC

This package is auto-updated.

Last update: 2024-09-18 03:17:25 UTC


README

这是一个 OpenTok SDK 的 Laravel 5 封装库。OpenTok 是 TokBox 公司的产品,利用 WebRTC 技术实现点对点视频、音频和信息通信。请注意:本仓库与 TokBox 没有任何关联。

安装

要获取 OpenTok Laravel 的最新版本,只需使用 Composer 引入项目。

$ composer require mmsccons/opentok-laravel

当然,您也可以手动更新 require 块并运行 composer update

{
    "require": {
        "mmsccons/opentok-laravel": "dev-master"
    }
}

一旦安装了 OpenTok Laravel,您需要注册服务提供者。打开 config/app.php 文件,并将以下内容添加到 providers 键中。

  • OpentokLaravel\ServiceProvider::class

您可以将 OpentokApi 门面对象注册到 config/app.php 文件的 aliases 键中。

  • 'Opentok' => OpentokLaravel\Facades\Opentok::class

配置

默认值设置在 `config/opentok.php' 中。将此文件复制到您的配置目录中修改值。您可以使用以下命令发布配置:

php artisan vendor:publish --provider="OpentokLaravel\ServiceProvider"

从您的 OpenTok 账户获取 api_key 和 api_secret 并替换配置文件中的占位符。要配置多个项目,请参阅以下内容。

在深入之前...

虽然直接进入是很诱人的,但为了避免失望,我强烈建议您查看 OpenTok 简介,并浏览网站和阅读他们的文档。我的文档非常差,仅用于简化 Laravel 开发者的使用,绝不能替代 OpenTok 的文档(它真的很棒)。

了解通用的流程、使用的技术以及定义等,例如会话、发布者、订阅者、令牌等,绝对是个好主意。

通用用法

首先,您需要创建一个会话,以便您的订阅者或/和发布者可以关联。

// new session
$session    = Opentok::createSession();
$sessionId  = $session->getSessionId();

// check if it's been created or not (could have failed)
if (empty($sessionId)) {
    throw new \Exception("An open tok session could not be created");
}

现在,我们需要创建一个令牌,供发布者使用,以便他们可以实际发布。请注意,您需要在客户端使用 API 密钥在 JS 中使用,例如这样:(这样您就不需要在 JS 文件或模板中硬编码)

// use the necessary files
use Config;
use Opentok; // Facade
use OpenTok\Role;
use OpenTokException;

// get your API key from config
$api_key = Config::get('opentok.api_key');

// then create a token (session created in previous step)
try {
    // note we're create a publisher token here, for subscriber tokens we would specify.. yep 'subscriber' instead
    $token = Opentok::generateToken($sessionId,
        array(
            'role' => Role::PUBLISHER
        )
    );
} catch(OpenTokException $e) {
    // do something here for failure
}

// pass these to your view where you're broadcasting from as you'll need them...
return View::make('your/view')
    ->with('session_id', $sessionId)
    ->with('api_key', $api_key)
    ->with('token', $token)

有关视频、音频和信息的 JS/HTML 等,请参阅 OpenTok 的 快速入门指南文档,并浏览他们的如何操作示例等。它们相当不错!

希望您会发现这个库很有用,如果有,请随时告诉我,并随时发表评论、提问或建议以改进!

多个项目

您可能需要定义多个 OpenTok 项目,例如为 Safari 11 支持。要添加另一个项目,请将项目设置添加到 config/opentok.php 文件中。

要按名称引用项目

// projectName is as defined in the configuration file.
$session = Opentok::project('projectName')->createSession();

// to access the default project, you can do either
$session = Opentok::project('defaultProjectName')->createSession();
// or..
$session = Opentok::createSession();