/// <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); }
/// <summary> /// 编码客户端向服务器发送的请求消息,暂不加密,格式:total(4) + seqId(4)+ messageUniqueId(4) + body /// </summary> /// <param name="gameMessage"></param> public byte[] EncodeGameMessage(IGameMessage gameMessage) { 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); } return(byteBuf.ToArray()); }