Forráskód Böngészése

feat:修改部分bug

xzh 4 éve
szülő
commit
717cf5b5b7
1 módosított fájl, 29 hozzáadás és 23 törlés
  1. 29 23
      server/socketv2.js

+ 29 - 23
server/socketv2.js

@@ -43,15 +43,40 @@ module.exports = class WebSocketServer {
         console.log('join success', clientRoom, user)
       })
 
+      socket.on(EVENT.clientSyncAction, (data) => {
+        console.log('client', clientRoom, data)
+        socket.broadcast.to(clientRoom).emit(EVENT.clientSyncAction, data)
+      })
+
+      socket.on(EVENT.changeVoiceStatus, data => {
+        let _roomPerson = this._roomPerson.get(roomId) || []
+        user.voiceStatus = data.status
+        console.log(_roomPerson, '_roomPerson')
+        _roomPerson.forEach(item => {
+          if (item.userId === user.userId) {
+            item.voiceStatus = user.voiceStatus
+          }
+        })
+        this._roomPerson.set(roomId, _roomPerson)
+        socket.broadcast.to(roomId).emit(EVENT.changeVoiceStatus, {roomsPerson: sortRoomUser(_roomPerson)})
+      })
+      
       // 若有房间人数限制
       if (userLimitNum && this._roomPerson.get(roomId) && this._roomPerson.get(roomId).length >= userLimitNum) {
-        socket.emit('roomInFail', { type: 'full', msg: '房间人数已满' })
+        setTimeout(() => {
+          socket.emit('roomInFail', { type: 'full', msg: '房间人数已满' })
+        }, 1000)
         return this
       }
 
+      
+
       // 若已结束、房间已关闭
-      if ( user.role !== 'leader'&& this._roomPerson.get(roomId) && !this._roomPerson.get(roomId).find(item => item.role === 'leader')) {
-        socket.emit(EVENT.roomClose)
+      if ( user.role !== 'leader'&& ((this._roomPerson.get(roomId) && !this._roomPerson.get(roomId).find(item => item.role === 'leader')) || (!this._roomPerson.get(roomId)))) {
+        console.log('roomClose')
+        setTimeout(() => {
+          socket.emit(EVENT.roomClose)
+        }, 1000)
         return this
       }
 
@@ -84,7 +109,7 @@ module.exports = class WebSocketServer {
           socket.join(webRoomId, () => {
             console.log('join webRoom', user)
             let roomsPerson = this._roomPerson.get(roomId) || []
-            socket.emit(EVENT.roomIn, { roomsPerson })
+            socket.emit(EVENT.roomIn, { roomsPerson: sortRoomUser(roomsPerson) })
             socket.broadcast.to(roomId).emit(EVENT.someOneInRoom, { user, roomsPerson: sortRoomUser(roomsPerson) })
           })
         }
@@ -113,25 +138,6 @@ module.exports = class WebSocketServer {
         socket.broadcast.to(roomId).emit(EVENT.action, data)
       })
 
-      socket.on(EVENT.clientSyncAction, (data) => {
-        console.log('client', clientRoom, data)
-        socket.broadcast.to(clientRoom).emit(EVENT.clientSyncAction, data)
-      })
-
-      socket.on(EVENT.changeVoiceStatus, data => {
-        let _roomPerson = this._roomPerson.get(roomId) || []
-        user.voiceStatus = data.status
-        console.log(_roomPerson, '_roomPerson')
-        _roomPerson.forEach(item => {
-          if (item.userId === user.userId) {
-            item.voiceStatus = user.voiceStatus
-          }
-        })
-        this._roomPerson.set(roomId, _roomPerson)
-        console.log(_roomPerson, data, user)
-        socket.broadcast.to(roomId).emit(EVENT.changeVoiceStatus, {roomsPerson: sortRoomUser(_roomPerson)})
-      })
-
       socket.on("disconnect", (reason) => {
         console.log(reason, 'reason')
         socket.leave(roomId)