d***@qicke.com
d***@qicke.com
  • 发布:2020-08-05 10:53
  • 更新:2020-08-05 10:53
  • 阅读:888

【报Bug】socketTask 发送较大数据时,最后一段数据会丢失

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.3

手机系统: Android

手机系统版本号: Android 6.0

手机厂商: 小米

手机机型: redmi 4A

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

WebSocket_init(){
// let url = 'ws://192.168.1.104:12020/oim/websocket';
let url = 'ws://xxxx';
// uni.onSocketOpen(function(data){
// console.log("onsocketopen");
// })
let socketTask = uni.connectSocket({
url,
complete: (e) => {
console.log('complete===',e)
}
});
socketTask.onError((e)=>{
console.log('error==='+JSON.stringify(e))
});
socketTask.onOpen((res)=>{
console.log('open===',res)
this.socketTasks = socketTask;
this.sendoim_login();
});
socketTask.onMessage((msg)=>{
console.log('++onMessage+',msg.data);
let res = JSON.parse(msg.data)
if(res.head.action=='1.1.001'&&res.head.method=='1.1.0005'){
this.myid = res.body.user.id;
this.msgtoken = res.body.token;
this.sendoim_token(res.body.token);
}

            });  
        },  

==============这是发送代码
let data = JSON.stringify(obj_msg);
console.log(data.length);
console.log(data);
this.socketTasks.send({
data:data,
success: (dat) => {
console.log(dat);
},
fail: (dat) => {
console.log(dat);
},
complete: (dat) => {
console.log(dat);
}
})

操作步骤:

选择一个较大的文件,或发送一段较大的字符串。

预期结果:

发送后,服务器端收到对应的字符串

实际结果:

服务器端收到的字符串缺少最后一部分。

bug描述:

进行websocket 连接后,socketTask发送消息超过1500字节,服务器收到的消息会丢失最后一段。

2020-08-05 10:53 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复