[]为什么SOCKET接收数据BYTE内存会越来越大
接收数据_msgByte每次都调用clear(),且每次接收的数据大小是一致的;
但在google监视内存发现内存越来越大
private receiveHandler(msg: any = null): void {
///接收到数据触发函数
this._msgByte.clear();
this._msgByte.writeArrayBuffer(msg);//把接收到的二进制数据读进byte数组便于解析。
this._msgByte.pos = 0;//设置偏移指针;
}
发现一个问题就是如果数据传输比较平凡会出现 SOCKET.input里面的缓存会越变越大,但只会触发一次Laya.Event.MESSAGE事件,而且msg是只有最近发送的数据,这就导致了SOCKET.input多于的数据将无法获取,而SOCKET.input却会越来越大
但在google监视内存发现内存越来越大
private receiveHandler(msg: any = null): void {
///接收到数据触发函数
this._msgByte.clear();
this._msgByte.writeArrayBuffer(msg);//把接收到的二进制数据读进byte数组便于解析。
this._msgByte.pos = 0;//设置偏移指针;
}
发现一个问题就是如果数据传输比较平凡会出现 SOCKET.input里面的缓存会越变越大,但只会触发一次Laya.Event.MESSAGE事件,而且msg是只有最近发送的数据,这就导致了SOCKET.input多于的数据将无法获取,而SOCKET.input却会越来越大
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Aar0n
赞同来自:
可能是这个原因
socket 会把 服务器接收的数据 缓存到_input 中, 如果不用这个缓存读数据, 就可以把 socket的属性 disableInput:Boolean = false; 的值设为true
如果没有解决问题,请附上demo 或更详细的信息,以供排查问题