ginvi
ginvi
  • 发布:2019-08-01 18:12
  • 更新:2021-11-08 11:11
  • 阅读:2398

【报Bug】uni-app websocket安卓环境下没有办法接收二进制消息(binary)

分类:uni-app

详细问题描述

  • uni-app下使用websocket,在IOS以及web环境下都可以正常收取文本消息和二进制消息。但是同样的程序在android环境就不能收取二进制消息,普通文本消息还是可以正常收到。

  • 如果采用老的编译模式【usingComponents=false】,可以收到二进制消息。

  • 初步怀疑:android平台下对于websocket二进制消息收取有问题。

  • 基本可以排除是服务端的问题,原因 1)其他java websocket客户端,纯javascript websocket客户端都可以收发服务端发送的文本和二进制消息。 2)如果将服务端发送消息的模式从binary改为text,则android平台下可以正常收取消息。

IDE运行环境说明

Hbuilder2.0.1到HBuilder2.1.3版本都测试过,问题都存在。

可重现代码片段

uni-app websocket

    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onLoad() {  
            var socketTask = uni.connectSocket({  
                url: 'ws://192.168.202.244:9325',  
                data() {  
                    return {  
                        x: '',  
                        y: ''  
                    };  
                },  

                header: {  
                    'content-type': 'application/json'  
                },  
                method: 'GET',  
                complete: ()=> {}  
            });  
            socketTask.onOpen(function(){  
                console.log('11111');  
                setInterval(function() {  
                    socketTask.send({  
                        data:"00001"  
                    })  
                }, 3000);  

            })  
            socketTask.onMessage(function(data){  
                console.log(data)  
            })  
            socketTask.onError(function(){  
                console.log(arguments);  
            })  
        },  
        methods: {  
        }  
    }

weex websocket

websocket.WebSocket('ws://192.168.202.244:9325','');  
//websocket.WebSocket('ws://echo.websocket.org');  
websocket.onopen(function(e) {  
    console.log(111);  
    setInterval(function() {  
        websocket.send("00001{}");  
    },3000);  
    console.log(222)  
})  
websocket.onmessage(function(res) {  
    console.log(3333)  
    console.log(JSON.stringify(res));  
});   
websocket.onerror(function(e) {  
    console.log(e)  
});

联系方式

[QQ] 66199805

2019-08-01 18:12 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

此问题新版已经优化
老版本临时解决方案:
使用非自定义组件编译模式,或者使用此插件:plus-websocket

  • ginvi (作者)

    OK,使用plus-websocket没有发现问题,多谢。

    2019-08-02 17:43

ginvi

ginvi (作者) - full stack

这么一个基本的问题都要拖这么久,我也是醉了,报了BUG毫无反馈。

纸短情长

纸短情长 - 帅气男

请问这个问题 解决了吗?

5***@qq.com

5***@qq.com

这个问题解决没

appwociao

appwociao

这个问题解决没有?我也碰到了

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