Socket.IO integration