тебе вот тут просто нужен реактивный массив посланных сообщений и реактивный массив принятых сообщений, который обновляется, в зависимости от данных с соккетов
то, что должно "ограничить" пользователя кода, чтобы он не выстрелил себе в ногу, в итоге заставляет его открывать 7 сейфов-матрешек просто потому, что отвертка лежит в том же сейфе, что и дробовик