|
@@ -43,15 +43,40 @@ module.exports = class WebSocketServer {
|
|
console.log('join success', clientRoom, user)
|
|
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) {
|
|
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
|
|
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
|
|
return this
|
|
}
|
|
}
|
|
|
|
|
|
@@ -84,7 +109,7 @@ module.exports = class WebSocketServer {
|
|
socket.join(webRoomId, () => {
|
|
socket.join(webRoomId, () => {
|
|
console.log('join webRoom', user)
|
|
console.log('join webRoom', user)
|
|
let roomsPerson = this._roomPerson.get(roomId) || []
|
|
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) })
|
|
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.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) => {
|
|
socket.on("disconnect", (reason) => {
|
|
console.log(reason, 'reason')
|
|
console.log(reason, 'reason')
|
|
socket.leave(roomId)
|
|
socket.leave(roomId)
|