basic socket.io integration