1.0.1-rc • Published 4 years ago

@smt-lib/bullet-service v1.0.1-rc

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

弹幕直播lib

smt-bullet

解释: 降低直播收发弹幕的开发成本,让业务方更关注于弹幕界面交互效果。

npm

npm使用方法方法,见npm使用说明

npm install @smt-lib/bullet-service

示例

const Studio = require('@smt-lib/bullet-service');

const studio = new Studio({
	roomId: '' // 直播间id
});
// 监听消息
studio.onMessage(function (res) {
	// res 是消息体
});

// 加入直播间并开始监听消息
studio.join();
	.then(res => {
	})
	.catch(err=> {
	});

// 发送消息
studio.sendMessage(text)
	.then(res => {
		if (res.data && res.data.type === '102') {
			 studio.quit();
		}
	})
	.catch(err=> {

	});
// 退出直播间
studio.quit();

// 扩展api
// 捕获异常
studio.onError(function (err) {
	// err 异常信息
});

// 停止接收消息
studio.stop();

// 更新用户openid 
studio.updateUser('填写openid');

API

构造器

属性名类型必填默认值说明
roomIdstringY直播间id
openIdstringN登录用户必须传openId

方法

join

加入直播间, 并开始接收消息。

属性名类型必填默认值说明
roomIdstringN构造函数中填写的roomId直播间id

返回:Promise对象

成功

字段名类型必有说明
hostobjectY主播信息
userinfoobjectY用户信息
feedbacksstringY点赞数
onlineUsersstringY在线用户数
statusstringY直播间状态,0 直播 2 关闭无回放 3 关闭且有回放 20 直播间结束
warningstringY进入直播间在直播界面显示的警示语,固定为:【官方提醒:欢迎进入直播间。官方提倡健康的直播环境,对弹幕内容进行实时巡查。任何传播违法、违规、低俗等不良信息行为的帐号将会进行严肃处理哦!】。
characterstringY用户所属直播间的角色
characterNamestringY用户所属直播间的角色名称,如果character为1005普通用户,那么该字段为空,否则不为空;
hasCommentstringY聊天室是否显示评论区
{
    "onlineUsers":"0",
    "status":"0",
    "warning":"官方提醒:欢迎进入直播间。官方提倡健康的直播环境,对弹幕内容进行实时巡查。任何传播违法、违规、低俗等不良信息行为的帐号将会进行严肃处理哦!",
    "hasComment":"1",
    "feedbacks":"0",
    "userinfo":{
        "avatar_url":"https://himg.bdimg.com/sys/portrait/item/3ae42f11.jpg?time=3086",
        "gender":"2",
        "nick_name":"revee789"
    },
    "host":{
        "fans":"65",
        "follows":"33",
        "gender":"0",
        "avatar_url":"https://himg.bdimg.com/sys/portrait/item/tb.1.63ca1926.cEGFpFgU2U04m76uFmWIaw.jpg",
        "name":"yanxfchenx",
        "nick_name":"yanxfchenx"
    }
}

失败 |字段名 | 类型 | 必有 | 说明 | |---|---|---|---| |stage| string|Y| 阶段名称: join加入直播间,quit退出直播间,sendMessage发送信息 | |errno|number|N |错误码| |errMsg|string|N| 错误信息| |tipmsg|string| N|中文错误信息 | |error| string/object| Y |错误信息|

sendMessage |字段名 | 类型 | 必有 | 说明 | |---|---|---|---| |text| string|Y| 弹幕文本|

返回:Promise对象

成功

字段名类型必有说明
contentstringY消息内容
msgKeystringY客户端生成id
msgidnumberY消息id

失败 |字段名 | 类型 | 必有 | 说明 | |---|---|---|---| |stage| string|Y| 阶段名称: join加入直播间,quit退出直播间,sendMessage发送信息 | |errno|number|N |错误码| |errMsg|string|N| 错误信息| |tipmsg|string| N|中文错误信息 | |error| string/object| Y |错误信息|

onMessage

注册消息监听函数

字段名类型必有说明
callbackfunctionY消息回调函数

callback参数说明

字段名类型必有说明
typestringY消息类型,可枚举:0文本消息,101系统消息,102退出直播间消息,106删除消息
msgidnumberY消息id 唯一
// 普通消息
{
    "msgKey":"_smt1578212826585",
    "msgid":1578212827136553,
    "createTime":1578212827,
    "roomId":"5619165",
    "type":"0",
    "vip":"0",
    "name":"百度网友cb12e4d",
    "portrait":"http://himg.bdimg.com/sys/portrait/item/3ae42f11.jpg?time=3086",
    "content":"好纠结的测试文案"
}

// 系统消息
{
    "type":101,
    "data":{
    "lastestuser":[
        "张三",
        "李四"
    ],
    "onlineusercnt":32,
    "totaluser":32,
    "onlineuser":[

{ "uid":65, "avatar":"HTTPS" } ] } // 直播结束 { "type":102, "data":{ "duration":718534, "total_users":0, "new_fans":0, "feedbacks":0, "close_from":0, "duration_format":"199:35:34", "total_users_format":"0", "feedbacks_format":"0", "msg_num_format":"0" }, "room_id":"5621662" } // 系统公告 二期IM支持 { "type" :103 // 消息类型 "data":{ "title" : string, //系统消息内容,如 “系统公告” "content" : string, //系统消息内容
} }

// 删除消息
{
    "type":106,
    "data":{
        "mcast_id":3307661947,
        "msgids":[
            "1579175545854083"
        ]
    }
}

tips; 1 type:0 普通消息用于展示。 2 type:101 是系统消息,获取在线人数等信息。 3 type:102 是系统公告,由IM直播服务控制下发。 4 type:106 是删除消息,由IM直播服务控制下发。

quit

退出直播间

退出之前会清除消息监听和内存资源。

字段名类型必有说明
roomIdnumberN房间id

返回:Promise对象

失败 |字段名 | 类型 | 必有 | 说明 | |---|---|---|---| |stage| string|Y| 阶段名称: join加入直播间,quit退出直播间,sendMessage发送信息 | |errno|number|N |错误码| |errMsg|string|N| 错误信息| |tipmsg|string| N|中文错误信息 | |error| string/object| Y |错误信息|

updateUser

在用户切换账号成功后调用,studio实例将自动更新用户数据。

字段名类型必有说明
openIdstringY登录用户必须传openId

stop

停止接收消息并释放网络资源。

onError

注册异常监听函数

字段名类型必有说明
callbackfunctionY异常回调函数

callback参数说明

字段名类型必有说明
stagestringY阶段说明
errorstringobjectY错误信息

错误信息说明

errno 错误码与 errmsg对照表

业务方向 业务码 具体业务 具体错误码后缀 错误码信息 错误码解释 直播100

错误码错误信息错误解释备注
00001unkown error下游接口返回错误前缀00 加入直播间
00002param error参数错误
00003room not exist直播房间号不存在
01001room has been shutdown直播间被关闭前缀01 发弹幕
01002no authority参数错误
01003send msg to restapi-golang cast fail向后端发送消息失败
01004the user in block list用户在黑名单
02001param error ext参数错误前缀02 退出直播间
02002token not validtoken无效
02003root not ready直播未开始
02004liveroom size upper limit人数已达直播间上限

tips:在发生错误时,此表可以做为初步参照依据,进行异常的定位和处理。