basic socket.io support