void OnSend() { if (IptSendmsg && !string.IsNullOrEmpty(IptSendmsg.text)) { PrintLog(IptSendmsg.text); } //TODO 发送 var player = GetPlayer(); byte[] bytes; using (MemoryStream stream = new MemoryStream()) { player.Build().WriteTo(stream); bytes = stream.ToArray(); } var pkg = PbPkg.CreateBuilder(); pkg.Id = 1001; pkg.Data = player.Build().ToByteString(); var pkgBytes = pkg.Build().ToByteArray(); ClientSocket.Send(pkgBytes, 0, pkgBytes.Length); Debug.LogFormat("start send->pkgBytes.Length{0}", pkgBytes.Length); }
public void OnRecviveCallback(byte[] data, int start, int length) { PrintLog("recv—>byteLength:{0},start:{1},length:{2}", data.Length, start, length); //TODO 业务逻辑划分 //TODO 反序列化数据 var pkg = PbPkg.ParseFrom(data); if (pkg.HasData) { Debug.LogFormat("recv:id={0}", pkg.Id); var player = PbPkg.ParseFrom(pkg.Data).ToBuilder(); var isPlayer = player is C2S_UPDATE_PLAYER; if (player != null) { PrintLog("recvParse——>type:{0},id:{1},isPlayer:{2}", player.DefaultInstanceForType, player.Id, isPlayer); } } else { PrintLog("recv data not parse"); Debug.Log("recv data not parse"); } }