A common problem users face with using roslibjs is their main thread getting locked up when serializing or deserializing large messages. In the past, roslibjs addressed this by optionally having Web Worker support. I removed that support because it had decayed to a point where it was unclear if it could possibly work.
Today, now that Web Worker support is ubiquitous, I think we should consider migrating away from EventEmitter and to Web Workers. Web Workers have a similar event-oriented programming paradigm, and would offload each individual Topic, Service, etc. to a separate worker thread to prevent any from blocking each other or the parent application that is using roslibjs.