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();