按上述信息操作即可复现
- 发布:2023-03-24 02:29
- 更新:2023-03-24 19:37
- 阅读:568
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 专业版 1903
HBuilderX类型: 正式
HBuilderX版本号: 3.7.8
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: Redmi 10X 4G
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
rawHeaders: [
'Origin',
'https://uniapp.dcloud.net.cn',
]
rawHeaders: [
'Origin',
'https://uniapp.dcloud.net.cn',
]
实际结果:
rawHeaders: [
'Origin',
'http://localhost',
'Origin',
'https://uniapp.dcloud.net.cn',
]
rawHeaders: [
'Origin',
'http://localhost',
'Origin',
'https://uniapp.dcloud.net.cn',
]
bug描述:
APP的WebSocket header中设置Origin会多出http://localhost。
比如说设置
header: {
'Origin': 'https://uniapp.dcloud.net.cn'
},
服务器端理应收到的rawHeaders:
rawHeaders: [
'Origin',
'https://uniapp.dcloud.net.cn',
]
实际上,服务器端收到的rawHeaders:
rawHeaders: [
'Origin',
'http://localhost',
'Origin',
'https://uniapp.dcloud.net.cn',
]
会多出一个 'Origin':'http://localhost',
在uniapp客户端所用的代码是:
const socketTask = uni.connectSocket({
url: '你的wss链接',
header: {
'Origin': 'https://uniapp.dcloud.net.cn',
},
complete: () => {}
});
socketTask.onOpen(() => {
console.log("onOpen")
})
socketTask.onClose((res) => {
console.log("onClose", res)
})
socketTask.onError((err) => {
console.log("onError", err)
})
所用的的ws服务器代码是
var WebSocketServer = require('ws').Server
var wss = new WebSocketServer({ port: 3000 })
wss.on('connection', function(ws, req) {
console.log('req', req)
})
9***@qq.com (作者)
你好,下个版本能实现吗?有点急。或者现在有没有什么办法,比如修改文件之类的,可以让我把默认的Origin去掉?
2023-03-24 23:29
DCloud_Android_ST
回复 9***@qq.com: 已反馈 后续会通过你是非配置添加 具体时间不定 请留意发版
2023-03-27 17:58
9***@qq.com (作者)
回复 DCloud_Android_ST: 好的,谢谢。希望能尽快加入。
2023-03-28 10:28
DCloud_Android_ST
回复 9***@qq.com: HX3.7.12版本已处理
2023-04-03 15:16