HarmonyOS 鸿蒙Next ets TCPSocket 接收数据缓慢
HarmonyOS 鸿蒙Next ets TCPSocket 接收数据缓慢
使用Tcp Socket成功与服务器建立连接,但是当接收服务端发送过来的数据包出现分包时,message事件回调接收到第一个数据包后,要等几秒中才会再次进入message事件回调,因此造成接收整包时间非常长,数据无法及时接收和解析。请问大家对这种情况都是怎样处理的?希望大神能够帮帮忙,谢谢!
let socket = socket.constructTCPSocketInstance()
socket.on(‘connect’, () => {
console.log(TAG, socket log on connect success);
});
socket.on(‘close’, data => {
console.log(TAG, socket log on close success);
});
// 接收数据
socket.on(‘message’, value => {
console.log(TAG, socket log on message, 收到数据);
});
socket.on(‘error’, err => {
console.log(TAG, socket log on error, error:${JSON.stringify(err)});
});
await socket.bind({ address: server.ip, port: server.port, family: 1 }).then(() => {
console.log(TAG, socket log bind success);
}).catch(err => {
console.log(TAG, socket log bind fail, error:${JSON.stringify(err)} ${JSON.stringify(server)});
});
await socket.connect({
address: { address: server.ip, port: server.port, family: 1 }, timeout: 6000
}).then(() => {
console.log(TAG, socket log connect success);
let promiseExtraOptions = socket.setExtraOptions({
keepAlive: true,
OOBInline: true,
TCPNoDelay: true,
socketLinger: {
on: true, linger: 10
},
receiveBufferSize: 1000,
sendBufferSize: 1000,
reuseAddress: true
});
promiseExtraOptions.then(() => {
console.log(‘setExtraOptions success’);
}).catch(err => {
console.log(‘setExtraOptions fail err:’ + err);
})
}).catch(err => {
Logger.error(TAG, socket log connect fail, error:${JSON.stringify(err)});
})
4 回复
请问楼主,问题解决了吗
ets TCPSocket 发送arrayBuffer数据到服务端,服务器接收到的数据非arrayBuffer而是字符串类型。这是为什么。