二级后端添加数据快照修正。前端添加数字孪生

This commit is contained in:
2026-01-15 17:37:57 +08:00
parent 166afcb959
commit 3c4e60bc49
20 changed files with 2445 additions and 148 deletions

View File

@@ -16,38 +16,58 @@ export function createMeasureSocket({
const wsBase = (config.wsUrl || config.baseUrl || '').replace(/^http/, 'ws')
const url = `${wsBase}/websocket?type=${type}`
console.log(url)
console.log(url)
function connect() {
manualClose = false
// socket = new WebSocket(url)
socket = uni.connectSocket({
url,
success() {
console.log('连接成功')
}
})
console.log(socket)
socket.onOpen = () => {
console.log('连接成功')
onOpen && onOpen()
}
socket.onMessage = (evt) => {
onMessage && onMessage(evt.data)
}
socket.onError = (err) => {
// 使用 uni.connectSocket 建立连接(部分运行环境可能不支持 WebSocket会直接抛异常
try {
socket = uni.connectSocket({
url,
success() {
console.log('connectSocket 调用成功,等待 onOpen 回调')
},
fail(err) {
console.error('connectSocket 调用失败:', err)
onError && onError(err)
}
})
} catch (err) {
console.error('connectSocket 执行异常(可能环境不支持 WebSocket:', err)
onError && onError(err)
return
}
socket.onClose = (evt) => {
if (!socket) {
console.error('connectSocket 未返回有效 socketTask')
return
}
// 正确的事件注册方式socketTask.onOpen / onMessage / onError / onClose
socket.onOpen((res) => {
console.log('WebSocket 已打开', res)
onOpen && onOpen(res)
})
socket.onMessage((evt) => {
// H5 为 evt.data小程序为 evt.data统一兼容
const data = evt && (evt.data || evt)
onMessage && onMessage(data)
})
socket.onError((err) => {
console.error('WebSocket 发生错误:', err)
onError && onError(err)
})
socket.onClose((evt) => {
console.log('WebSocket 已关闭', evt)
onClose && onClose(evt)
if (!manualClose) {
setTimeout(connect, 3000)
}
}
})
}
function close() {
@@ -59,11 +79,18 @@ export function createMeasureSocket({
}
function send(data) {
if (socket && socket.readyState === WebSocket.OPEN) {
socket.send(JSON.stringify(data));
} else {
console.error('WebSocket is not open. Cannot send message.');
if (!socket) {
console.error('WebSocket 未初始化,无法发送消息')
return
}
// uni-app 的 socketTask.send 使用对象形式
socket.send({
data: JSON.stringify(data),
fail(err) {
console.error('发送 WebSocket 消息失败:', err)
}
})
}
return { connect, close, send }