0.1.5 • Published 7 years ago

lycamplus-node-sdk v0.1.5

Weekly downloads
14
License
MIT
Repository
github
Last release
7 years ago

Lycam+ 直播服务端Node.js SDK

该 SDK 适用于 Node.js 0.4.7 及其以上版本 ,基于LYCAM+官方直播API构建 。 若您的服务端是一个基于 Node.js 编写的网络程序,使用此 SDK ,能让您以非常便捷地方式接入我们的服务 ,同时也使得您的服务端更加轻盈 。

安装

您可以从 npm 进行安装

npm install lycamplus-node-sdk

也可以从 Github 进行下载安装

$ git clone https://github.com/lycam-dev/lycamplus-node-sdk.git
$ cd lycamplus-node-sdk
$ npm install .

测试

Lycam+ Node.js SDK 使用 Mocha 进行单元测试 。

$ npm install -g Mocha
$ npm test

使用

配置 config 并创建 SDK 实例

设置全局参数 ,包括必须的 appKey ,appSecret 和 password ,配置参数将会延至所有空间 。

var config = {
    appKey:     <您申请到的 AppKey>
    appSecret:  <您申请到的 AppSecret>
    password:   <您申请到的 masterSecret>
};

创建 SDK 实例 。

var lycamPlus = new LycamPlus(config);

User 对象

获取 User 对象并进行操作

var userInstance = lycamPlus.newUser();

1. 创建用户

创建用户到 Lycam+ 系统中 ,以便用户操作 API 接口鉴权使用 。

var params = {
    username: 'admin123',
    password: 'admin123'
};
userInstance.create(username, password, function(err, result) {
    // 您的代码
});

该 SDK 所有 API ,我们都提供了 callback 和 Promise 两种返回操作 。所以 ,您也可以使用如下方式 :

var params = {
    username: 'admin123',
    password: 'admin123'
};
userInstance.create(params)
            .then(function(result) {
                // 您的逻辑代码
            })
            .catch(function(err) {
                // 您的错误处理代码
            });

请求参数

请求参数是否必须数据类型参数说明
usernamefalsestring用户名,长度为6-80位,如果为空将随机生成
passwordfalsestring用户密码,长度8-16位,如果为空将随机生成
emailfalsestring邮件地址
phonefalsestring手机号码 11-20 位
descriptionfalsestring描述 4-300个字符
displayNamefalsestring显示的昵称,2-20位
extraInfofalsejson自定义用户信息。格式为 json,比如:{ address:"成都市科华北路", tel:"0288519999"}

返回字段

返回字段数据类型参数说明
usernamestring用户名
uuidstring用户唯一身份标识
passwordstring用户密码(如果密码为随机生成,才返回此字段)
successbool成功标志,成功 true,失败 false

2. 用户token获取

用户访问Lycam+资源操作接口(比如:推流、收看)时需要用户鉴权,我们使用token进行验证 。

userInstance.assume('uuid', function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
uuidtruestring用户唯一身份标识( 即uuid )

返回字段

返回字段数据类型参数说明
successbool成功标志,成功 true,失败false
scopestring授权资源范围,*表示所有资源
tokenjson objecttoken对象 。包括 access_token,expires_in 字段等...

Stream 对象

获取 Stream 对象并进行操作

var streamInstance = lycamPlus.newStream();

1. 创建视频流

在 Lycam+ 后台系统中创建一条视频流 。 用于返回给终端用户或实现您自己的业务 。

var params = {
    user: 'uuid',
    title: 'test',
    ...
};
streamInstance.create(params, function(err, result) {
   // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
userfalsestring用户唯一身份标识( 即uuid )
titlefalsestring视频流标题
descriptionfalsestring视频流描述
thumbnailUrlfalsestring视频流封面地址
startLatfalsefloat开始视频的维度坐标
startLonfalsefloat开始视频的经度坐标
countryfalsestring国家
statefalsestring省份
cityfalsestring城市
privacyfalsebool是否私有视频( true是,false否 )
extraInfofalsejson object自定义用户信息,格式为 json

返回字段

返回字段数据类型参数说明
streamIdstringstramId ( 视频流标识 )
statusstring直播状态(live, over,ready)
streamUrlsjson object视频播放资源列表
uploadUrlstring推流地址
chatUrlstring消息服务器地址
chatChannelstring消息服务器频道
resourceUrlstring视屏 HTML 主页地址
titlestring视频流标题
descriptionstring视频流描述
thumbnailUrlstring视频流封面地址
startLatfloat开始视频的维度坐标
startLonfloat开始视频的经度坐标
countrystring国家
statestring省份
citystring城市
privacybool是否私有视频( true是,false否 )
extraInfoobject自定义用户信息,格式为 json

2. 更新指定ID视频流

在 Lycam+ 后台系统中更新指定ID视频流信息 。

var params = {
    'description': '视频描述',
    ...
};
streamInstance.update('streamId', params, function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
titlefalsestring视频流标题
descriptionfalsestring视频流描述
thumbnailUrlfalsestring视频流封面地址
startLatfalsefloat开始视频的维度坐标
startLonfalsefloat开始视频的经度坐标
endLatfalsefloat视频当前的维度坐标
endLonfalsefloat视频当前的经度坐标
countryfalsestring国家
statefalsestring省份
cityfalsestring城市
privacyfalsebool是否私有视频( true是,false否 )
extraInfofalsejson object自定义用户信息,格式为 json

返回字段

返回字段数据类型参数说明
streamIdstringstramId ( 视频流标识 )
statusstring直播状态(live, over,ready)
streamUrlsjson object视频播放资源列表
uploadUrlstring推流地址
chatUrlstring消息服务器地址
chatChannelstring消息服务器频道
resourceUrlstring视屏 HTML 主页地址
titlestring视频流标题
descriptionstring视频流描述
thumbnailUrlstring视频流封面地址
countrystring国家
statestring省份
citystring城市
privacybool是否私有视频( true是,false否 )
...其它视频流参数

3. 获取指定ID视频流信息

在 Lycam+ 后台系统中获取指定ID的视频流 。 用于返回给终端用户或实现您自己的业务 。

streamInstance.show('streamId', function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
streamIdtruestringstramId ( 视频流标识 )

|

返回字段

返回字段数据类型参数说明
streamIdstringstramId ( 视频流标识 )
statusstring直播状态(live, over,ready)
streamUrlsjson object视频播放资源列表
uploadUrlstring推流地址
chatUrlstring消息服务器地址
chatChannelstring消息服务器频道
resourceUrlstring视屏 HTML 主页地址
titlestring视频流标题
descriptionstring视频流描述
thumbnailUrlstring视频流封面地址
startLatfloat开始视频的维度坐标
startLonfloat开始视频的经度坐标
countrystring国家
statestring省份
citystring城市
privacybool是否私有视频( true是,false否 )
extraInfoobject自定义用户信息 ,格式为 json

4. 获取视频流列表

获取 Lycam+ 后台系统中视频流列表 。用于返回给终端用户或实现您自己的业务 。

streamInstance.list(function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
resultsPerPagefalseint每页返回记录数 ,默认 10 行
pagefalseint返回第几页 ,默认第 1 页
sortfalsestring排序字段( id,description,created )
orderfalsestring排序方向( asc,desc )

返回字段

返回字段数据类型参数说明
totalItemsint记录总数
resultsPerPageint每一页数量
nextPageAvailablebool是否有下一页
itemsarray视频流清单数组

5. 获取指定时间前视频流列表

在 Lycam+ 后台系统获取指定时间前的视频流列表 。 用于返回给终端用户或实现您自己的业务 。

streamInstance.listSince(timestamp, resultsPerPage, function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
timestamptruelongtimestamp ( unix timestamp )
resultsPerPagefalseint每页返回记录数 ,默认 10 行

返回字段

返回字段数据类型参数说明
totalItemsint记录总数
resultsPerPageint每一页数量
nextPageAvailablebool是否有下一页
itemsarray视频流清单数组

6. 通过关键词搜索视频流

通过关键词在 Lycam+ 后台系统获取视频流列表 。 用于返回给终端用户或实现您自己的业务 。

var params = {
     title: 'title',
     ..
};
streamInstance.searchByKeyword(params, function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
keywordtruestring搜索关键词
resultsPerPagefalseint每页返回记录数 ,默认 10 行
pagefalseint返回第几页 ,默认第 1 页
sortfalsestring排序字段( id,description,created )
orderfalsestring排序方向( asc,desc )

返回字段

返回字段数据类型参数说明
totalItemsint记录总数
resultsPerPageint每一页数量
nextPageAvailablebool是否有下一页
itemsarray视频流清单数组

7. 通过地理位置搜索视频流

通过地理位置在 Lycam+ 后台系统获取视频流列表 。 用于返回给终端用户或实现您自己的业务 。

var params = {
    lon: '0',
    lat: '0',
    ..
};
streamInstance.searchByLocation(params, function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
lontruefloat经度
lattruefloat纬度
radiustruefloat搜索半径
resultsPerPagefalseint每页返回记录数 ,默认 10 行
pagefalseint返回第几页 ,默认第 1 页
sortfalsestring排序字段( id,description,created )
orderfalsestring排序方向( asc,desc )

返回字段

返回字段数据类型参数说明
totalItemsint记录总数
resultsPerPageint每一页数量
nextPageAvailablebool是否有下一页
itemsarray视频流清单数组

8. 销毁指定ID视频流

销毁在 Lycam+ 后台系统中指定ID的视频流 。

streamInstance.destroy('streamId', function(err, result) {
    // 您的代码
});

请求参数

请求参数是否必须数据类型参数说明
streamIdtruestringstramId ( 视频流标识 )

返回字段

返回字段数据类型参数说明
successbool成功标志 。成功 true,失败 false