[]LayaNative中运行程序网络请求异常

在我们项目中:
1.http请求使用的是Laya引擎中的HttpReqeust。
2.WebSocket因为历史原因使用的是SocketIO框架。
3.服务器是nginx,使用了多进程负载均衡。
 
现象:
在网页中和手机浏览器中访问服务器一切正常,秒进!但是在Native打包的app或在LayaPlayer中运行的程序在第一次使用httpRequest或WebSocket请求时会出现卡顿的情况。卡顿时间从1秒-10秒不等,http请求有时还会返回404错误。第一次请求成功后便不会出现卡顿情况一切流畅。
 
后打开安卓发布包查看发现:window.XMLHttpRequest和window.WebSocket这两个属性在Native中被重新修改成了Native自己封装的类。
 
查看Android studio debug发现

TIM截图20180309224657.png

红色框中为http请求第一次卡顿的log信息(这个时候在download什么?)有时候这里卡顿久了会报404错误。

TIM图片20180309225058.png

以上为socket第一次卡顿的地方,第一次链接请求为什么卡顿了?
 
初步怀疑Native中httpReqeust或WebSocket可能存在bug或者发送请求时的协议漏掉了什么?
 
请官方给出一些解决方案。
已邀请:

guozhaokui

赞同来自:

日志不全,不太明白。
httprequest请求的地址是你们自己的么?
这个不是我们发起的的请求,如果也不是你们的,那可能是socketio发起的?
Native打包的App不是浏览器,所以不知道会不会引起socketio不适?
建议用原生xhr和websocket在app中测试一下,确认一下问题出在什么地方

guozhaokui

赞同来自:

你可以用Html5原生的 XMLHttpRequest 测试, 不是XMLRequest
你是说由于请求了某个意外地址导致卡顿么,我们不会主动发起无关地址请求的。
 
socket那个,你用原生的websocket测试一下,不要用socketio
 
你说第一次http或者socket会卡顿,是说都会卡顿么,还是说这两个只会有一个卡顿。
 
最好给个完整日志
 

189*****077

赞同来自:

楼主请问这个问题解决了吗? 我也遇到跟你同样的问题,在Native打包的app或在LayaPlayer中运行的程序在第一次使用httpRequest或WebSocket请求时会出现卡顿的情况。找了下原因是第一次http请求layadcc更新卡住的

要回复问题请先

商务合作
商务合作