产品
Egret Engine
版本
5.1.11
复现概率
100%
平台
Windows 7
复现步骤
通过代理连接tcp游戏服务器
问题描述
原5.0.5的项目,升级到5.1.11后,socket通过代理连接游戏服务器,始终会出现读取数据的异常,发现升级到5.0.6问题就开始出现,经过代码比对和逐行替换,发现了是一下的一行 this.position += length;导致的问题,删除掉这行变成和5.0.5之前一样,问题解决。
错误代码
问题出在引擎库的egret.js文件中
ByteArray.prototype.readBytes = function (bytes, offset, length) { if (offset === void 0) { offset = 0; } if (length === void 0) { length = 0; } if (!bytes) { return; } var pos = this._position; var available = this.write_position - pos; if (available < 0) { egret.$error(1025); return; } if (length == 0) { length = available; } else if (length > available) { egret.$error(1025); return; } bytes.validateBuffer(offset + length); bytes._bytes.set(this._bytes.subarray(pos, pos + length), offset); this.position += length; //这行导致问题 };
BUG截图
![]()
| |
Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.