12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import consolaGlobalInstance from 'consola';
- // import Dialog from '/@/components/basic/dialog';
- // import { getApp } from '/@/hooks/userApp';
- import { useRoom } from '/@/hooks/useRoom';
- import { useSocket } from '/@/hooks/userSocket';
- import { UserInfoType, useRtcStore } from '/@/store/modules/rtc';
- const { enterRoom } = useRoom();
- // 自已join的方法
- export function handleJoin(data: any) {
- // const app = getApp();
- const { socket, closeSocket } = useSocket();
- const members = data?.members as any as UserInfoType[];
- const user = data?.user as any as UserInfoType;
- const rtcStore = useRtcStore();
- const userExsit = rtcStore.checkUserInMemberList(rtcStore.userId);
- enterRoom();
- rtcStore.setIsJoined(true);
- consolaGlobalInstance.info({
- message: data,
- tag: 'socket:enter',
- });
- if (user) {
- console.log('gem1', rtcStore.userId);
- console.log('gem2', rtcStore.memberList);
- const userExsit = rtcStore.checkUserInMemberList(rtcStore.userId);
- console.log('gem3', userExsit, user.Id !== userExsit?.Id);
- if (userExsit) {
- // Dialog.confirm({
- // showCloseIcon: false,
- // okText: '我知道了',
- // content:
- // "<span style='font-size: 16px; line-height: 1.5;'>您已有登录端在登录,请不要重复登录<span/>",
- // title: '隱私條款:',
- // single: true,
- // func: (state) => {},
- // });
- }
- } else {
- }
- members && rtcStore.setMemberList(members);
- console.log('gem', rtcStore.memberList.length, userExsit);
- const maxNumber = import.meta.env.VITE_ROOM_MEMBER || 10;
- console.log('roomMaxNumber', maxNumber);
- if (rtcStore.memberList.length > Number(maxNumber)) {
- if (rtcStore.role === 'customer') {
- rtcStore.showBaseDialog(
- {
- title: '温馨提示',
- desc: '带看人数已满,可切换自由观看',
- okTxt: '自由观看',
- closeTxt: '取消',
- isSingle: true,
- },
- () => {
- setTimeout(() => {
- closeSocket();
- }, 1500);
- },
- );
- // Dialog.toast({ content: `房间已满员` });
- // setTimeout(() => {
- // closeSocket();
- // }, 1500);
- // return;
- }
- }
- const { currentScene } = useRoom();
- if (rtcStore.isLeader) {
- socket.emit('action', {
- type: 'changeScene',
- data: currentScene.value,
- });
- }
- if (!rtcStore.isLeader) {
- setTimeout(() => {
- socket.emit('action', {
- type: 'user-init',
- });
- }, 1500);
- }
- }
|