wedgehr / opentok-laravel
OpenTok PHP SDK 的 Laravel 扩展包
Requires
- php: >=5.4.0
- illuminate/support: 6.x|7.x|8.x|9.x
- opentok/opentok: ~4.6
README
这是一个为 OpenTok SDK 开发的 Laravel 5 包装库。OpenTok 是 TokBox 旗下的产品,利用 WebRTC 技术实现点对点视频、音频和消息传递。请注意:此仓库与 TokBox 没有任何关联。
安装
要获取 OpenTok Laravel 的最新版本,只需使用 Composer 需求项目。
$ composer require wedgehr/opentok-laravel
当然,您也可以手动更新您的需求块并运行 composer update
。
{ "require": { "wedgehr/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();