Bidirectional data syncing via Socket.IO