If you are looking at Thrift, you should take a look at ZeroMQ too: http://www.zeromq.org
ZeroMQ provides only ways to send/receive messages over several transport mechanisms (sockets on steroids) and address them to specific clients. It does not define what is the content of the messages, so you can send JSON/BSON/Protocol Buffer or whatever you come up with.
I work with it every day and it is a pleasure every single day.