详细问题描述
[内容]
uni.connectSocket的protocols参数在安卓上没有起作用,如果设置了这个参数,通过如下代码设置的这个参数:
uni.connectSocket({
url:'ws://127.0.0.1:8083/mqtt',
protocols:["mqtt"],
})
在发起websocket连接的时候应该有一个Sec-WebSocket-Protocol:mqtt的Header,但是通过用tcpdump抓包看不到这儿头,在安卓模拟器就有这个协议头。
重现步骤
[步骤]
在安装上使用websocket并指定子协议
[结果]
建立连接失败,HTTP错误码是400,websocket的错误信息是Bad WebSocket Protocol
[期望]
指定子协议的websocket可以使用,可以正常建立连接
运行环境
[系统版本]
Android8.0
[浏览器版本]
Chrome 62
[IDE版本]
[手机操作系统]
[手机型号]
[mui版本]
附件
[代码片段]
[安装包]
联系方式
[QQ]
[电话]
2 个回复
4***@qq.com - 90It男
有点坑,uni-app用socket很多设置不能自己设
DCloud_UNI_GSQ
HBuilderX 2.3.0 版本已修复此问题
其他版本解决方案:
使用非自定义组件编译模式,或者使用此插件:plus-websocket