Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
        }