有两点需要说明:
1. 时间戳不要客户端和服务端都取,两者的时间可能会不同步,从而产生误差。一般都是客户端生成时间戳,发送和接收的时候,记录两次,然后,计算时间差,从而得到网络传输数据的时长。
2. 如果不涉及服务端计算或者服务端IO等待(比如数据库操作,分布式缓存的操作等)之类的操作的话,服务端收到请求之后立即应答,那么,网络不稳定的情况,基本上和软件程序无关了。
综上所述,楼主现在遇到的网络不稳定的情况,绝大多数是由于硬件环境造成的。
首先,手机入网,一般采用的是无线网络,也就是通常所说的Wifi,无线网络在传输数据的时候,很容易受到干扰和信道占用等待的情况。
解释一下:一般情况下,WiFi网络会分13个左右的信道,每个信道之间会有重叠区域,也就是说,相邻的2~3个信道之间如果有数据传输,会造成干扰。同一个信道,同时只能完成一对点到点之间的通信,如果有多个中断使用同一个信道,那么,就要轮着来使用。所以,在这种场景下,无线终端(手机)在传输数据的时候,可能正巧碰到其他终端(手机,PAD等)正在通信,从而要等待他们传输完成,或者,由于他们占用相邻信道通信,产生干扰,将部分数据传错了,然后,重新传输,造成延迟。
其次,周围无线路由和AP节点,由于没有统筹安排,信道占用的情况会比较混乱,无线通信由于信道之间的干扰会造成通信效率的降低。
如何优化无线网络的环境?
一般情况下,wifi的覆盖范围是100M~300M,
首先,确保手机和无线路由的距离不要超过100M,距离越近,信号强度越高,抗干扰能力越强。
其次,有条件的话,查看一下周围其他无线路由所占用的信道情况,是自己的路由选择一个相对独立的信道。
比如,没有占用的信道是1,2,7,8,9这几个,那么,自己路由就选择8这个信道,和其他信道的重叠区域最小,尽可能避免干扰的情况。
第三,保证自己的无线路由下面,只连接你自己的一台手机。终端(手机或者PAD等)越多,通信效率越低,造成延迟的几率越大。
最后,说道硬件环境,除了无线路由之外,还要考虑无线路由与服务器之间的网络问题,如果是直连的局域网,那就没什么可以考虑的了,如果是公网,那环境就复杂多了。
另外,无线路由的收发能力和处理能力,有些时候也要考虑进去,极个别无线路由,抗干扰能力弱或者数据处理能力不稳定,也会造成延迟。