|
@@ -5,9 +5,10 @@ import type { ConsolaLogObject } from 'consola';
|
|
import { handleActions, handleSync, handleReceivePaint, handleJoin } from './controls';
|
|
import { handleActions, handleSync, handleReceivePaint, handleJoin } from './controls';
|
|
import type { SocketParams } from '/@/store/modules/rtc';
|
|
import type { SocketParams } from '/@/store/modules/rtc';
|
|
import Dialog from '/@/components/basic/dialog';
|
|
import Dialog from '/@/components/basic/dialog';
|
|
-import { useRoom } from '/@/hooks/useRoom';
|
|
|
|
|
|
+import { roomId, useRoom } from '/@/hooks/useRoom';
|
|
import { useI18n } from '/@/hooks/useI18n';
|
|
import { useI18n } from '/@/hooks/useI18n';
|
|
import dayjs from 'dayjs';
|
|
import dayjs from 'dayjs';
|
|
|
|
+import { handleTimeOutError, handleEarlyError, handleError } from '../chatRoom/controls/actions';
|
|
// 所有socket业务事件集中点
|
|
// 所有socket业务事件集中点
|
|
|
|
|
|
export function initSocketEvent(socket: SocketIOClient.Socket): void {
|
|
export function initSocketEvent(socket: SocketIOClient.Socket): void {
|
|
@@ -22,28 +23,60 @@ export function initSocketEvent(socket: SocketIOClient.Socket): void {
|
|
nickname: rtcStore.nickname,
|
|
nickname: rtcStore.nickname,
|
|
isClient: false,
|
|
isClient: false,
|
|
};
|
|
};
|
|
- if (rtcStore.role === 'leader') {
|
|
|
|
- const { room } = useRoom();
|
|
|
|
- const limit = unref(room)?.maxMan || 10;
|
|
|
|
- const useEndTime = unref(room)?.useEndTime || '';
|
|
|
|
- console.log('unref(room)', unref(room));
|
|
|
|
- if (useEndTime) {
|
|
|
|
- const now = dayjs();
|
|
|
|
- const roomEnd = dayjs(useEndTime);
|
|
|
|
- const ttl = roomEnd.diff(now, 'second');
|
|
|
|
- params.roomConfig = {
|
|
|
|
- masterId: rtcStore.userId,
|
|
|
|
- limit: limit,
|
|
|
|
- ttl: ttl,
|
|
|
|
- };
|
|
|
|
|
|
+ const { room } = useRoom();
|
|
|
|
+ const useEndTime = unref(room)?.useEndTime || '';
|
|
|
|
+ const useStartTime = unref(room)?.useStartTime;
|
|
|
|
+ const limit = unref(room)?.maxMan || 10;
|
|
|
|
+ const now = dayjs();
|
|
|
|
+ const roomEnd = dayjs(useEndTime);
|
|
|
|
+ const ttl = roomEnd.diff(now, 'second');
|
|
|
|
+
|
|
|
|
+ if (useStartTime) {
|
|
|
|
+ const unstartTTl = dayjs(useStartTime).diff(now, 'second');
|
|
|
|
+ if (unstartTTl > 0) {
|
|
|
|
+ console.log('提前!!', dayjs(useStartTime));
|
|
|
|
+ handleEarlyError();
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ debugger;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (unref(room)) {
|
|
|
|
+ if (rtcStore.role === 'leader') {
|
|
|
|
+ console.log('unref(room)', unref(room));
|
|
|
|
+ if (useEndTime) {
|
|
|
|
+ params.roomConfig = {
|
|
|
|
+ masterId: rtcStore.userId,
|
|
|
|
+ limit: limit,
|
|
|
|
+ ttl: ttl,
|
|
|
|
+ };
|
|
|
|
+ } else {
|
|
|
|
+ params.roomConfig = {
|
|
|
|
+ masterId: rtcStore.userId,
|
|
|
|
+ limit: limit,
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (ttl > 0) {
|
|
|
|
+ socket.emit('join', params);
|
|
} else {
|
|
} else {
|
|
- params.roomConfig = {
|
|
|
|
- masterId: rtcStore.userId,
|
|
|
|
- limit: limit,
|
|
|
|
- };
|
|
|
|
|
|
+ //超时房间
|
|
|
|
+ handleTimeOutError();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //临时房间放行
|
|
|
|
+ if (roomId.indexOf('temp_') > -1) {
|
|
|
|
+ if (rtcStore.role === 'leader') {
|
|
|
|
+ params.roomConfig = {
|
|
|
|
+ masterId: rtcStore.userId,
|
|
|
|
+ limit: limit,
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ socket.emit('join', params);
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
+ handleTimeOutError();
|
|
}
|
|
}
|
|
- socket.emit('join', params);
|
|
|
|
});
|
|
});
|
|
|
|
|
|
socket.on('action', (data: any) => {
|
|
socket.on('action', (data: any) => {
|
|
@@ -83,7 +116,9 @@ export function initSocketEvent(socket: SocketIOClient.Socket): void {
|
|
case 'invalid-room-params':
|
|
case 'invalid-room-params':
|
|
Dialog.toast({ content: t('base.errorRoom') });
|
|
Dialog.toast({ content: t('base.errorRoom') });
|
|
break;
|
|
break;
|
|
-
|
|
|
|
|
|
+ case 'ttl-out':
|
|
|
|
+ handleError();
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
Dialog.toast({ content: `错误代码:${code},类型:${type}` });
|
|
Dialog.toast({ content: `错误代码:${code},类型:${type}` });
|
|
break;
|
|
break;
|