very easy. (All room numbers or only specific members or ...) If one of features causes a fatal error, it doesn't affect other features. Codebase become structured and easy to read
To update view we modify the state in the 'parent'. Child(socket) modules are mostly stateless. Thus children needs to modify the parent's state. It looks like antipattern. (but currently we have no problem, it's very limited situation...)