コード例 #1
0
        /// <summary>
        /// 编码客户端向服务器发送的请求消息,暂不加密,
        /// </summary>
        /// <param name="gameMessage"></param>
        public byte[] EncodeGameMessage(IGameMessage gameMessage)
        {
            seqid++;
            gameMessage.GetMessageHeader().SeqId = seqid;
            int total = 19;

            byte[] body = gameMessage.EncodeBody();
            if (body != null)
            {
                total += body.Length;
            }
            GameMessageHeader header  = gameMessage.GetMessageHeader();
            ByteBuf           byteBuf = new ByteBuf(total);

            byteBuf.WriteShort(total);
            byteBuf.WriteInt(header.SeqId);
            byteBuf.WriteShort(header.MessageId);
            byteBuf.WriteLong(DateUtil.GetCurrentTimeUnix());
            byteBuf.WriteShort((short)header.ServerType);
            byteBuf.WriteByte(0);
            if (body != null)
            {
                byteBuf.WriteBytes(body);
            }
            byte[] msg = byteBuf.ToArray();
            return(msg);
        }
コード例 #2
0
        /// <summary>
        /// 编码客户端向服务器发送的请求消息,暂不加密,格式:total(4) + seqId(4)+ messageUniqueId(4) + body
        /// </summary>
        /// <param name="gameMessage"></param>
        public byte[] EncodeGameMessage(IGameMessage gameMessage)
        {
            seqid++;
            gameMessage.GetMessageHeader().SeqId = seqid;
            int total = 12;

            byte[] body = gameMessage.EncodeBody();
            if (body != null)
            {
                total += body.Length;
            }
            ByteBuf byteBuf = new ByteBuf(total);

            byteBuf.WriteInt(total);
            byteBuf.WriteInt(gameMessage.GetMessageHeader().SeqId);
            byteBuf.WriteInt(gameMessage.GetMessageUniqueId());
            if (body != null)
            {
                byteBuf.WriteBytes(body);
            }
            byte[] msg = byteBuf.ToArray();
            return(msg);
        }