FE
useEffect(() => {
socket.current = io(process.env.REACT_APP_BE_URL);
socket.current.emit('new-user-add', user._id);
socket.current.on('get-users', (users) => {
console.log('GET USERS');
dispatch(setOnlineUsers(users));
});
return () => {
socket.current.off('new-user-add');
socket.current.off('get-users');
socket.current.disconnect();
};
}, [user._id]);
BE
socket.on("new-user-add", (newUserId:String) => {
if (!activeUsers.some((user) => user.userId === newUserId)) {
activeUsers.push({ userId: newUserId,socketId: socket.id });
}
socket.emit("get-users", activeUsers);
});
socket.on("disconnect" ,()=> {
activeUsers = activeUsers.filter( user => user.socketId !== socket.id)
socket.emit( "get-users", activeUsers)
})
Hello, I would like to know where the problem is. I emit the 'get-users' in the BE when new user connects and also when they disconnect. I can confirm that is happening. However the FE never pics up on the 'get-users' event unless it is the FE itself connecting.