chatroom-web
安装
npm install -S chatroom-web
如何使用
import * as uuid from "uuid";
import { SimpleSDK } from "chatroom-sdk/SimpleSDK";
import { SeatManager } from 'chatroom-sdk/SetaManager';
import * as seatTypes from 'chatroom-sdk/SeatTypes';
const config = {
appId = 0,
signKey = "",
isTestEnv = true
};
const userId = uuid.v4();
const userId2 = uuid.v4();
const token = "";
const simpleSDK = new SimpleSDK({ appId: config.appId, isTestEnv: config.isTestEnv });
const manager = new SeatManager({ userId: userId });
simpleSDK.setConfig({ idName: userId });
manager.onSeatsCenterChange = (seatsCenter, isRemote) => {
if (isRemote) {
console.log("update from remote");
} else {
console.log("update from local");
}
const res = manager.beautiful(seatsCenter);
console.log(res);
const currSeatStatus = manager.getCurrSeatStatus();
console.log(currSeatStatus);
if (!isRemote) {
const content = JSON.stringify(seatsCenter);
return simpleSDK.sendReliableMessage(manager.messageType, JSON.stringify(content));
} else {
return Promise.resolve(0);
}
}
simpleSDK.addOnRecvReliableMessage((type, seq, data) => {
if (!data) return;
const seatsCenter = JSON.parse(data as string);
if (!seatsCenter[seatTypes.SEATS_Status_KEY]) return;
manager.updateSeatsCenter(seatsCenter);
});
await simpleSDK.login({ roomId, token });
const useSeatControls = async () => {
await manager.takeSeat(1);
await manager.leaveSeat();
console.log(manager.getCurrSeatStatus());
await manager.lockSeat(0);
await manager.unlockSeat(0);
await manager.closeSeat(0);
await manager.openSeat(0);
await manager.muteSeat(0);
await manager.unmuteSeat(0);
await manager.muteAllSeat();
await manager.unmuteAllSeat();
await manager.pickupSeat({ [seatTypes.USER_ID_KEY]: userId2, [seatTypes.USER_NAME_KEY]: userId2 }, 2);
await manager.pickupDownSeat({ [seatTypes.USER_ID_KEY]: userId2, [seatTypes.USER_NAME_KEY]: userId2 }, 2);
};
useSeatControls();
WebRTC SDK 方法的使用
- SimpleSDK 内置了一些常用方法
- login
- setConfig
- getRoomList
- startPreview
- stopPreview
- startPublish
- stopPublish
- playStream
- playStreams
- stopPlayStream
- stopPlayStreams
- sendReliableMessage
- addOnRecvReliableMessage
- 其他 SDK 方法可通过 simpleSDK.client 实例获取,具体可参考文档 https://doc-zh.zego.im/zh/1806.html
注意事项
- 当没用户在房间的时候,房间将会销毁,麦位状态将会重置
- 必须已经登录才可发送消息
- 移动端的播放麦位,必须渲染在页面上,并且触发点击才可自动播放
- 麦位管理只提供麦位状态和麦位操作,具体业务推拉流逻辑需要自行添加开发