private void OnSendPacketMessage(NetBuffer msg, NetConnection conn) { long id = MessageRecvId; var packetMsg = new SendPacketMessage(); packetMsg.Read(msg); lock (SendPacketMessageRecvDictionaryLocker) { SendPacketMessageRecvDictionary[id] = new PacketNetBuffer(packetMsg.TargetSize, conn); } var rspMsg = new SendPacketMessageRecv() { UniqueIdentifier = packetMsg.UniqueIdentifier, MessagePacketId = id, }; SendMessage(rspMsg, conn); }
private void OnPacketMessage(NetBuffer msg) { var packetMsg = new PacketMessage(); packetMsg.Read(msg); long id = packetMsg.MessagePacketId; if (SendPacketMessageRecvDictionary.ContainsKey(id)) { PacketNetBuffer packet = null; lock (SendPacketMessageRecvDictionaryLocker) { if (SendPacketMessageRecvDictionary.ContainsKey(id)) { packet = SendPacketMessageRecvDictionary[id]; } } if (packet != null) { packet.Add(packetMsg); if (packet.IsComplete) { var ms = packet.ToBuffer(); lock (SendPacketMessageRecvDictionaryLocker) { SendPacketMessageRecvDictionary.Remove(id); } lock (AlreadyMessageQueueLocker) { OnDataMessage(this, ms, packet.SendConnection); } } } } }