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);