More efficient to add listeners per socket or to make a general rule?

I believe I have two truly distinct options (I'm not sure both will work; I'm new to this stuff):

Let's say I have two modules that I want socket.io to handle: module A and module B. Let's say it's two different chatrooms. I don't even want a dynamic number of chatrooms (because that limits my options and my question isn't really about versatility). Let's say it's a static number of chatrooms.

Option 1:

At the beginning of the client session, the client identifies itself as a member of chatroom A or chatroom B by sending an event with socket.emit('registerA', {}); or something like that. Then, on the server-side, I could have something like io.sockets.on('registerA', handleA); where handleA would be a function that adds listeners directly to each individual socket as it comes in. This would allow for multiple events of the same name (for example, a method 'post' could be sent the same way for chatroom A as it could be for chatroom B, but the listener would be different because of how it registered).

Option 2:

Have separate event handlers that apply to all sockets. This would mean that sockets wouldn't have to register themselves at all. An action like "post" would be "Apost" or "Bpost" depending on the chatroom, and they could be handled separately.

In terms of efficiency, which option is better?