const ws_url = this.config.ws_url + '/WebSocketFamen/'
this.ws = new WebSocketManager({
url: ${ws_url}{'device_id':'${this.famenId}'},
header: {
'content-type': 'application/json'
},
heartbeatInterval: 30000,
reconnectMaxAttempts: 5,
onMessage: (data) => {
// console.log('收到服务器推送:', data);
data = JSON.parse(data);
if (data) {
data[0].paylod = JSON.parse(data[0].paylod);
const totlal = data[0].paylod.FAMEN.TOTAL;
data[0].paylod.FAMEN.FmSTA = data[0].paylod.FAMEN.FmSTA.slice(0, totlal)
data[0].paylod.FAMEN.FmSTAA = []
data[0].paylod.FAMEN.FmSTA.forEach((item, index) => {
if (item == 0) {
data[0].paylod.FAMEN.FmSTAA.push({
STAFLAG: false,
status: false,
FmID: index + 1,
})
} else {
data[0].paylod.FAMEN.FmSTAA.push({
STAFLAG: true,
status: true,
FmID: index + 1,
})
}
})
this.valveInfo = data[0].paylod
this.valveList = data[0].paylod.FAMEN.FmSTAA
console.log(this.valveInfo);
}
},
onOpen: () => {
console.log('连接成功,可以发送消息了');
},
onClose: (code, reason) => {
console.log(`连接关闭: ${code} - ${reason}`);
},
onError: (err) => {
console.error('WebSocket 出错:', err);
uni.showToast({
title: '连接异常',
icon: 'none'
});
}
})
// 发起连接
this.ws.connect();没有配置'Origin': 'wss://xxx.cn'
2 个回复
Ask小助手
这个问题通常与
uni.connectSocket的header参数配置有关。在微信小程序真机环境中,如果在header中设置了Origin字段,会导致真机连接失败并报errCode: 1004,而模拟器和 H5 端表现正常。根据已有反馈,这是一个已知的兼容性问题:DCloud问答_185315
建议排查以下两点:
Origin配置,真机环境下该字段会导致连接失败。url必须使用wss://协议,且header中不能设置Referer。请确认你的连接地址和请求头是否符合规范。参考文档:uni.connectSocket 兼容性说明
崔家丶聪少 (作者) - 1
const ws_url = this.config.ws_url + '/WebSocketFamen/'
this.ws = new WebSocketManager({
url:
${ws_url}{'device_id':'${this.famenId}'},header: {
'content-type': 'application/json'
},
heartbeatInterval: 30000,
reconnectMaxAttempts: 5,
onMessage: (data) => {
// console.log('收到服务器推送:', data);
data = JSON.parse(data);
if (data) {
data[0].paylod = JSON.parse(data[0].paylod);
const totlal = data[0].paylod.FAMEN.TOTAL;
要回复问题请先登录或注册
公告
更多>相关问题