Add socket.io integration