Skip to content

Commit 7c50d5e

Browse files
committed
[修改]1. 修改测试客户端的协议实现
1 parent 06b0c79 commit 7c50d5e

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

GameFrameX.Client/UnityTcpClient.cs

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,23 +101,27 @@ private static void DecodeMessage(byte[] data)
101101
int offset = 0;
102102

103103
// 消息总长度
104-
var totalLength = data.ReadUInt(ref offset);
104+
var totalLength = data.ReadInt(ref offset);
105105
// 消息头长度
106-
ushort headerLength = data.ReadUShort(ref offset);
106+
byte operationType = data.ReadByte(ref offset);
107+
byte zipFlag = data.ReadByte(ref offset);
108+
var UniqueId = data.ReadInt(ref offset);
109+
var MessageId = data.ReadInt(ref offset);
110+
// ushort headerLength = data.ReadByte(ref offset);
107111
// 消息头字节数组
108-
var messageHeaderData = data.ReadBytes(ref offset, headerLength);
112+
// var messageHeaderData = data.ReadBytes(ref offset, headerLength);
109113
// 消息对象头
110-
var messageObjectHeader = DecodeHeaderNetworkMessage(messageHeaderData);
114+
// var messageObjectHeader = DecodeHeaderNetworkMessage(messageHeaderData);
111115
// 消息内容
112-
var messageData = data.ReadBytes(ref offset, (int)(totalLength - headerLength - 6));
113-
var messageType = MessageProtoHelper.GetMessageTypeById(messageObjectHeader.MessageId);
116+
var messageData = data.ReadBytes(ref offset, (int)(totalLength - 14));
117+
var messageType = MessageProtoHelper.GetMessageTypeById(MessageId);
114118
if (messageType != null)
115119
{
116120
var messageObject = (MessageObject)ProtoBufSerializerHelper.Deserialize(messageData, messageType);
117-
messageObject.SetMessageId(messageObjectHeader.MessageId);
118-
messageObject.SetOperationType((MessageOperationType)messageObjectHeader.OperationType);
119-
messageObject.SetUniqueId(messageObjectHeader.UniqueId);
120-
Console.WriteLine($"客户端接收到信息:{messageObject.ToFormatMessageString()}");
121+
messageObject.SetMessageId(MessageId);
122+
messageObject.SetOperationType((MessageOperationType)operationType);
123+
messageObject.SetUniqueId(UniqueId);
124+
// Console.WriteLine($"客户端接收到信息:{messageObject.ToFormatMessageString()}");
121125
}
122126
}
123127

@@ -127,8 +131,8 @@ private static byte[] Handler(MessageObject message)
127131
{
128132
_count++;
129133

130-
MessageProtoHelper.SetMessageIdAndOperationType(message);
131-
134+
MessageProtoHelper.SetMessageId(message);
135+
message.SetOperationType(MessageProtoHelper.GetMessageOperationType(message));
132136

133137
MessageObjectHeader messageObjectHeader = new MessageObjectHeader
134138
{
@@ -138,16 +142,19 @@ private static byte[] Handler(MessageObject message)
138142
};
139143
var header = ProtoBufSerializerHelper.Serialize(messageObjectHeader);
140144
var messageData = ProtoBufSerializerHelper.Serialize(message);
141-
var totalLength = (uint)(header.Length + messageData.Length + InnerPackageHeaderLength);
145+
var totalLength = messageData.Length + InnerPackageHeaderLength;
142146
var buffer = new byte[totalLength];
143147
var offset = 0;
144-
buffer.WriteUInt(totalLength, ref offset);
145-
buffer.WriteUShort((ushort)header.Length, ref offset);
146-
buffer.WriteBytesWithoutLength(header, ref offset);
148+
buffer.WriteInt(totalLength, ref offset);
149+
buffer.WriteByte((byte)messageObjectHeader.OperationType, ref offset);
150+
buffer.WriteByte((byte)messageObjectHeader.ZipFlag, ref offset);
151+
buffer.WriteInt(messageObjectHeader.UniqueId, ref offset);
152+
buffer.WriteInt(messageObjectHeader.MessageId, ref offset);
153+
// buffer.WriteBytesWithoutLength(header, ref offset);
147154
buffer.WriteBytesWithoutLength(messageData, ref offset);
148-
Console.WriteLine($"客户端接发送信息:{message.ToFormatMessageString()}");
155+
// Console.WriteLine($"客户端接发送信息:{message.ToFormatMessageString()}");
149156
return buffer;
150157
}
151158

152-
const ushort InnerPackageHeaderLength = 4 + 2;
159+
const ushort InnerPackageHeaderLength = 14;
153160
}

0 commit comments

Comments
 (0)