private void ReceiveHandle(ulong id, byte[] buffer) { if (buffer.Length < 2) { return; } //ProtocolBuff 數據結構Tag為2byte Header header = Header.Parser.ParseFrom(buffer, 2, buffer.Length - 2); Console.WriteLine("Receive Player {0}, ProtoID {1}.", id, header.ProtoID.ToString()); Func <ulong, byte[], IMessage> resp; if (m_protocolContainer.TryGetValue(header.ProtoID, out resp)) { IMessage message = resp?.Invoke(id, buffer); Action <ulong, IMessage> actions; if (registerContainer.TryGetValue(header.ProtoID, out actions)) { actions?.Invoke(id, message); } } }
private void OnReceiveHandle(byte[] buffer) { if (buffer.Length < 2) { return; } //ProtocolBuff 數據結構Tag為2byte Header header = Header.Parser.ParseFrom(buffer, 2, buffer.Length - 2); Action <byte[]> ack; if (m_protocolContainer.TryGetValue(header.ProtoID, out ack)) { ack?.Invoke(buffer); } Console.WriteLine("Receive ProtoID {0}.", header.ProtoID); }