示例#1
0
        void C_OnReceivedMessage(byte[] rawMessage)
        {
            SharpSerializer         ser          = SharpSerializer.Create(rawMessage);
            SharpConnectionMessages incomingType = (SharpConnectionMessages)ser.ReadByte();

            if (incomingType == SharpConnectionMessages.ClientConnected)
            {
                SharpClient incomingClient = new SharpClient(ref ser);
                this.room.AssignClient(incomingClient);
                C_OnClientConnected(incomingClient);
            }
            else if (incomingType == SharpConnectionMessages.ClientDisconnected)
            {
                short netID = ser.ReadInt16();
                C_OnClientDisconnected(this.room.Get(netID));
            }
            else if (incomingType == SharpConnectionMessages.DirectData)
            {
                short  sender      = ser.ReadShort();
                int    channel     = ser.ReadInt32();
                int    packageSize = ser.ReadInt32();
                byte[] rawData     = ser.ReadBytes(packageSize);
                C_OnReceivedData(this.room.Get(sender), channel, rawData);
            }

            ser.Post();
        }