/// <summary> /// 添加Event和Heartbeat /// </summary> /// <param name="manager"> </param> /// <param name="message"> </param> public void Add(IMessage message) { if ((_mStack.Count == 0)) { IMessageTree tree = _mTree.Copy(); if (String.IsNullOrWhiteSpace(tree.MessageId)) { tree.MessageId = _mManager.NextMessageId(); } tree.Message = message; tree.EstimatedByteSize = message.EstimateByteSize(); _mTree.EstimatedByteSize = 0; _mManager.Flush(tree); } else { ITransaction parent = _mStack.Peek(); AddTransactionChild(message, parent); } Tree.EstimatedByteSize += message.EstimateByteSize(); }