real-time data map updates via socket.io