Skip to content

Commit ef2bb4c

Browse files
committed
diagnosing rooms
1 parent ddd17a2 commit ef2bb4c

File tree

2 files changed

+45
-27
lines changed

2 files changed

+45
-27
lines changed

app/src/components/left/RoomsContainer.tsx

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ let socket;
3030
const { API_BASE_URL } = config;
3131
const RoomsContainer = () => {
3232
const dispatch = useDispatch();
33-
const { state, roomCode, userName, userList, userJoined } = useSelector(
33+
const { roomCode, userName, userList, userJoined } = useSelector(
3434
(store: RootState) => ({
35-
state: store.appState,
3635
roomCode: store.roomSlice.roomCode,
3736
userName: store.roomSlice.userName,
3837
userList: store.roomSlice.userList,
@@ -52,30 +51,39 @@ const RoomsContainer = () => {
5251

5352
socket.on('connect', () => {
5453
console.log(`You Connected With Id: ${socket.id}`);
55-
socket.emit('join-room', roomCode); // Join the room when connected
54+
// ????
55+
//socket.emit('join-room', roomCode); // Join the room when connected
5656
console.log(`Your Nickname Is: ${userName}`);
5757
//passing current client nickname to server
58+
// ???
5859
socket.emit('joining', userName, roomCode);
5960
//listening to back end for updating user list
60-
socket.on('updateUserList', (newUserList) => {
61-
dispatch(setUserList(Object.values(newUserList)));
62-
});
61+
});
62+
63+
socket.on('updateUserList', (newUserList) => {
64+
console.log('received user list from back:', newUserList);
65+
dispatch(setUserList(Object.values(newUserList)));
66+
console.log('client user list updated:', userList);
6367
});
6468

6569
// receiving the message from the back end
66-
socket.on('receive message', (event) => {
70+
socket.on('new state from back', (event) => {
71+
console.log('front receiving new state');
6772
let currentStore: any = JSON.stringify(store.getState());
6873
// console.log('event ', event);
6974
if (currentStore !== event) {
7075
currentStore = JSON.parse(currentStore);
7176
event = JSON.parse(event);
7277
if (currentStore.appState !== event.appState) {
78+
console.log('updating app state');
7379
store.dispatch(allCooperativeState(event.appState));
7480
} else if (
7581
currentStore.codePreviewSlice !== event.codePreviewCooperative
7682
) {
83+
console.log('updating code preview');
7784
store.dispatch(codePreviewCooperative(event.codePreviewCooperative));
7885
} else if (currentStore.styleSlice !== event.styleSlice) {
86+
console.log('updating style');
7987
store.dispatch(cooperativeStyle(event.styleSlice));
8088
}
8189
}
@@ -88,20 +96,22 @@ const RoomsContainer = () => {
8896

8997
let previousState = store.getState();
9098
// sending info to backend whenever the redux store changes
91-
const handleStoreChange = debounce(() => {
92-
const newState = store.getState();
93-
const roomCode = newState.roomSlice.roomCode;
99+
// const handleStoreChange = debounce(() => {
100+
// const newState = store.getState();
101+
// const roomCode = newState.roomSlice.roomCode;
94102

95-
if (newState !== previousState) {
96-
// Send the current state to the server
97-
socket.emit('custom-event', JSON.stringify(newState), roomCode);
98-
previousState = newState;
99-
}
100-
}, 100);
103+
// if (newState !== previousState) {
104+
// // Send the current state to the server
105+
// console.log('front emitting new state')
106+
// socket.emit('new state from front', JSON.stringify(newState), roomCode);
107+
// previousState = newState;
108+
// }
109+
// }, 100);
101110

102111
store.subscribe(() => {
103112
if (socket) {
104-
handleStoreChange();
113+
console.log('handling store change');
114+
//handleStoreChange();
105115
}
106116
});
107117

@@ -208,7 +218,7 @@ const RoomsContainer = () => {
208218
variant="filled"
209219
size="small"
210220
value={userName}
211-
placeholder="Input nickname"
221+
placeholder="Input Nickname"
212222
onChange={(e) => dispatch(setUserName(e.target.value))}
213223
/>
214224
<TextField

server/server.ts

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,29 +97,33 @@ const io = new Server(httpServer, {
9797

9898
const roomLists = {}; //key: roomCode, value: Obj{ socketid: username }
9999
io.on('connection', (client) => {
100-
client.on('custom-event', (redux_store, room) => {
100+
client.on('new state from front', (redux_store, room) => {
101101
if (room) {
102102
//sending to sender client, only if they are in room
103-
client.to(room).emit('receive message', redux_store);
103+
console.log('back emitting new state');
104+
client.to(room).emit('new state from back', redux_store);
104105
} else {
105106
//send to all connected clients except the one that sent the message
106-
client.broadcast.emit('receive message', redux_store);
107+
console.log('back emitting new state');
108+
client.broadcast.emit('new state from back', redux_store);
107109
}
108110
});
109111

110-
client.on('join-room', (roomCode) => {
111-
//working
112-
client.join(roomCode);
113-
});
112+
// client.on('join-room', (roomCode) => {
113+
// //working
114+
// client.join(roomCode);
115+
// });
114116

115117
//when user Joined a room
116118
client.on('joining', (userName, roomCode) => {
119+
client.join(roomCode);
117120
if (!roomLists[roomCode]) roomLists[roomCode] = {}; //if no room exist, create new room in server
118121
roomLists[roomCode][client.id] = userName; // add user into the room with id: userName
119122
io.in(roomCode).emit('updateUserList', roomLists[roomCode]); //send the message to all clients in room
120123
console.log('full room lists', roomLists);
124+
console.log(`${userName} joined room ${roomCode}`);
121125
console.log(
122-
`User list of room ${roomCode}: `,
126+
`back sent User list of room ${roomCode}: `,
123127
roomLists[roomCode]
124128
);
125129
});
@@ -128,12 +132,16 @@ io.on('connection', (client) => {
128132
// the client.rooms Set contains at least the socket ID
129133
const roomCode = Array.from(client.rooms)[1]; //grabbing current room client was in when disconnecting
130134
delete roomLists[roomCode][client.id];
135+
console.log('back deleting user from list');
131136
//if room empty, delete room from room list
132137
if (!Object.keys(roomLists[roomCode]).length) {
133138
delete roomLists[roomCode];
134139
} else {
135140
//else emit updated user list
136-
console.log('User list after User Left', roomLists[roomCode]);
141+
console.log(
142+
'back emitting User list after User Left',
143+
roomLists[roomCode]
144+
);
137145
io.to(roomCode).emit('updateUserList', roomLists[roomCode]);
138146
}
139147
});

0 commit comments

Comments
 (0)