I know there are some Ruby bottlenecks (i.e. profanity filtering on chat messages), but not a lot of chat messages are sent. We also use Zlib compression on sending/receiving data payload, and we also use the
bindata gem (
http://bindata.rubyforge.org/) to mark our payload length (not sure if this is the most effective way to do things).
While our effective RPM is 3000 (or 50 RPS), for every request we're broadcasting the same message to others in the room, so it's effectively sending/receiving 250-300 messages per second.