快速入门
安装
使用 npm 安装 sdk:
npm i dr-liveroom
初始化实例
import QueueService from "dl-liveroom";
const queueService = new QueueService({ userType: "customer" });
await queueService.loginAsync({
appId: "<appId>",
server: "<server>",
dispatchServer: "<dispatchServer>",
tokenUrl: "<tokenUrl>",
idName: "<idName>"
});
获取排队服务列表
const queueList = await queueService.getQueueList();
const firstQueue = queueList[0];
进入排队服务
const vipInfo = 0;
const {
queueId,
queueName
} = firstQueue;
const enterRes = await queue.customerEnterQueue({
queueId,
extraInfo: "",
vipInfo: this.state.isVip ? 1 : 0
});
const enterRes = await queue.staffEnterQueue({
queueId,
queueName,
roomId
});
服务回调通知及回复服务
const catchRes = await queue.staffCatch();
queueService.onCustomerServiceStart(async (para) => {
const { roomId } = para.body;
const reject = false;
await queueService.customerReply({
consultId,
operation: reject ? 2 : 1
});
});
queue.onStaffServiceStart((para) => {
window._openDialog({
content: ["", "Customer is accept service", "Customer is reject service", "Service is timeout", "The customer is quitted queue"][para.body.customerOperation]
});
});
进入音视频房间
const publishStreamId = "<publishStreamId>";
const localViewEl = "<HTMLVideoElement>";
const remoteViewEl = "<HTMLVideoElement>";
const streamList = await queueService.enterRoomAsync(roomId);
await queueService.startPreviewAsync(localViewEl);
await queueService.startPublish(publishStreamId);
await queueService.playStream({ viewEl: remoteViewEl, streamId: streamList[0].streamId });
退出排队服务队列
await queueService.customerQuitQueue();
await queueService.staffQuitQueue();
离开音视频房间
await queueService.leaveRoom();
await queueService.stopPreview();
await queueService.stopPublish();
await queueService.stopPlayStreams();
相关事件回调注册
queueService.onCustomerServiceTimeout = () => {
console.log("is service timeout.");
};
queueService.onUserStateUpdate = (roomId, userList) => {
console.log(roomId, userList);
};
queueService.onRecvCustomCommand = (userId, userName, content) => {
console.log(userId, userName, content);
};
queueService.onStreamUpdated = (type, newStreamList) => {
console.log(type, newStreamList);
};
queueService.onPlayQualityUpdate = (streamId, quality) => {
console.log(streamId, quality);
};
queueService.onTempBroken = () => {
console.log("临时掉线");
};
queueService.onReconnect = () => {
console.log("重连成功");
};
queueService.onKickOut = (err) => {
console.log("被踢下线通知");
};
queueService.onDisconnect = (err) => {
console.log("服务掉线通知");
};