ive written a little chat system, but would like to discuss the organisation.
One question: why aren't you using IRC?
I assume you wanted to learn about networking as you went along, or something...If so, the best bet now is to look at IRC in detail and compare and contrast. My initial reaction is to wonder why you care about efficiency of messages - are you having problems with performance? If not, why worry?
If you look at IRC you'll see how they solved the problems, and if it works, and whether users complain about the way they chose to do it.