react native 的udp在接收服务器返回的数据的时候用了20s才接收到信息

react native 的udp在接收服务器返回的数据的时候用了20s才接收到信息

问题描述:

不多说上图
图片说明
我想服务器发送一条指令
10s返回了我发的这条指令
20s返回服务器该返回的值
(socket.on执行了2次)
比如我发条指令GET-OK
返回值是OK
就是说我socket.send(GET-OK)
socket.on(GET-OK)
socket.on(OK)

我也出现过这个问题,最后被我解决了,主要的原因是收到数据获取数据来源的HostName和Port占用大量的时间,通过修改代码:
react-native-udp / android / src / main / java / com / tradle / react / UdpReceiverTask.java
问题在第47和第50行,如下代码

 final InetAddress address = packet.getAddress();
 final String base64Data = Base64.encodeToString(packet.getData(), packet.getOffset(),
 packet.getLength(), Base64.NO_WRAP);
 receiverListener.didReceiveData(base64Data, address.getHostName(), packet.getPort());

改成:

 //final InetAddress address = packet.getAddress();
 final String base64Data = Base64.encodeToString(packet.getData(), packet.getOffset(),
 packet.getLength(), Base64.NO_WRAP);
 receiverListener.didReceiveData(base64Data, "", 0);