如题。 题主的项目中,某个协议0.2秒发一条,服务端回一条数据,协议比较的短,然后在iPhone的浏览器上就遇到问题了,回来的消息时延不一致,有时候几百毫秒才回消息,有时候一次收到多条数据包。
怀疑是遇到了Nagle算法问题,但在WebSocket的API中未找到相关设置接口ws.setNoDelay(true);
如是,我问,求助各位大神。
如题。 题主的项目中,某个协议0.2秒发一条,服务端回一条数据,协议比较的短,然后在iPhone的浏览器上就遇到问题了,回来的消息时延不一致,有时候几百毫秒才回消息,有时候一次收到多条数据包。
怀疑是遇到了Nagle算法问题,但在WebSocket的API中未找到相关设置接口ws.setNoDelay(true);
如是,我问,求助各位大神。
该问题从昨天重视到现在这个点,没找到办法。
1、办法一:使用第三方提供的ws库:npm install ws
提示 
用不了,淘汰;
2、办法二:使用第三方提供的websocket库: npm install websocket

依旧用的是浏览器自己的,淘汰;
3、办法三:在数据采用定时器发送;
一番折腾后,然后居然正常了,但我觉得自己没改什么啊,底层完全动不了。询问服务端的同事,他们也说没动什么东西。神奇了。
该贴自结。
200ms这个时间比较尴尬, Nagle的组包时间好像也是这个时间。 正卡在点上,然后我加了个定时器时间,正好绕开了这个时间点。是不是这样子?
你这个消息的发送频率有点过分了啊
是一个自动发射子弹的频率
遇到一样的问题, 后来确认是后端使用websocketpp版本问题, set_no_delay无效, 从0.8换成0.7就好了