use only one ZeroMQ socket to handle messages

this improves performance, reduces amount of
file descriptors on connection and makes code
much cleaner.