IRC uses a very simple way of handling rooms and private messages: in addition to a From property, all events also have a To property. There is no intrinsic separation between the messages addressed at different rooms. It's a very natural way to go about it, I think.