feat: 添加存储WebSocket基础路径支持,更新环境配置和WebSocket服务以处理新路径
This commit is contained in:
parent
7145cb2786
commit
107ef11106
3
.env
3
.env
@ -1,3 +1,4 @@
|
||||
ENV_APP_TITLE=运输控制系统
|
||||
ENV_HTTP_BASE=/api
|
||||
ENV_WEBSOCKET_BASE=/ws
|
||||
ENV_WEBSOCKET_BASE=/ws
|
||||
ENV_STORAGE_WEBSOCKET_BASE=/vwedWs
|
@ -1,6 +1,7 @@
|
||||
ENV_APP_TITLE=运输控制系统(开发)
|
||||
# ENV_HTTP_BASE=/mocks
|
||||
ENV_WEBSOCKET_BASE=/ws
|
||||
ENV_STORAGE_WEBSOCKET_BASE=/vwedWs
|
||||
|
||||
# 开发环境token配置 - 可以手动设置或从另一个项目获取后填入
|
||||
ENV_DEV_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NTAzMzkwMTcsInVzZXJuYW1lIjoiYWRtaW4ifQ.uGWMIPH9-sdyEwr0bQBMKQSTAjYBZhlIVDRHGtheENE
|
||||
|
@ -1,3 +1,4 @@
|
||||
ENV_APP_TITLE=大众一汽发动机AMR调度系统
|
||||
ENV_HTTP_BASE=/jeecg-boot/
|
||||
ENV_WEBSOCKET_BASE=/ws
|
||||
ENV_STORAGE_WEBSOCKET_BASE=/vwedWs
|
||||
|
@ -119,7 +119,9 @@ class EnhancedWebSocket {
|
||||
if (isHeartbeatResponse) {
|
||||
this.heartbeatReceivedCount++;
|
||||
const responseTime = Date.now() - this.lastHeartbeatTime;
|
||||
console.log(`💗 收到心跳响应: ${this.path}, 响应时间: ${responseTime}ms, 已发送: ${this.heartbeatSentCount}, 已接收: ${this.heartbeatReceivedCount}`);
|
||||
console.log(
|
||||
`💗 收到心跳响应: ${this.path}, 响应时间: ${responseTime}ms, 已发送: ${this.heartbeatSentCount}, 已接收: ${this.heartbeatReceivedCount}`,
|
||||
);
|
||||
// 心跳响应,不传递给业务代码
|
||||
return;
|
||||
}
|
||||
@ -133,17 +135,17 @@ class EnhancedWebSocket {
|
||||
this.ws.onclose = (event) => {
|
||||
const connectionDuration = Date.now() - this.connectionStartTime;
|
||||
const closeReason = getCloseReasonDescription(event.code, event.reason);
|
||||
|
||||
|
||||
console.log(`❌ WebSocket连接关闭: ${this.path}`);
|
||||
console.log(` └─ 关闭原因: ${closeReason}`);
|
||||
console.log(` └─ 连接持续时间: ${connectionDuration}ms`);
|
||||
console.log(` └─ 心跳统计: 发送${this.heartbeatSentCount}次, 接收${this.heartbeatReceivedCount}次`);
|
||||
console.log(` └─ 是否手动关闭: ${this.isManualClose}`);
|
||||
console.log(` └─ 是否心跳超时: ${this.isHeartbeatTimeout}`);
|
||||
|
||||
|
||||
// 分析断连原因
|
||||
this.analyzeDisconnectionReason(event.code, event.reason);
|
||||
|
||||
|
||||
this.stopHeartbeat();
|
||||
|
||||
// 先调用业务代码的关闭处理
|
||||
@ -178,7 +180,7 @@ class EnhancedWebSocket {
|
||||
if (reason) {
|
||||
console.log(` └─ 服务器提供的关闭原因: ${reason}`);
|
||||
}
|
||||
|
||||
|
||||
switch (code) {
|
||||
case 1000:
|
||||
console.log(' └─ 正常关闭,可能是服务器主动关闭或客户端主动关闭');
|
||||
@ -222,11 +224,16 @@ class EnhancedWebSocket {
|
||||
// 获取连接状态文本
|
||||
private getReadyStateText(): string {
|
||||
switch (this.ws.readyState) {
|
||||
case WebSocket.CONNECTING: return 'CONNECTING(0)';
|
||||
case WebSocket.OPEN: return 'OPEN(1)';
|
||||
case WebSocket.CLOSING: return 'CLOSING(2)';
|
||||
case WebSocket.CLOSED: return 'CLOSED(3)';
|
||||
default: return `UNKNOWN(${this.ws.readyState})`;
|
||||
case WebSocket.CONNECTING:
|
||||
return 'CONNECTING(0)';
|
||||
case WebSocket.OPEN:
|
||||
return 'OPEN(1)';
|
||||
case WebSocket.CLOSING:
|
||||
return 'CLOSING(2)';
|
||||
case WebSocket.CLOSED:
|
||||
return 'CLOSED(3)';
|
||||
default:
|
||||
return `UNKNOWN(${this.ws.readyState})`;
|
||||
}
|
||||
}
|
||||
|
||||
@ -434,7 +441,13 @@ class EnhancedWebSocket {
|
||||
}
|
||||
|
||||
function create(path: string): Promise<WebSocket> {
|
||||
const baseUrl = import.meta.env.ENV_WEBSOCKET_BASE ?? '';
|
||||
let baseUrl = '';
|
||||
if (path.includes(import.meta.env.ENV_STORAGE_WEBSOCKET_BASE)) {
|
||||
baseUrl = '';
|
||||
} else {
|
||||
baseUrl = import.meta.env.ENV_WEBSOCKET_BASE ?? '';
|
||||
}
|
||||
|
||||
const ws = new EnhancedWebSocket(path, baseUrl) as WebSocket;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
|
@ -56,6 +56,12 @@ export default ({ mode }: Record<string, unknown>) =>
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
},
|
||||
'/vwedWs/': {
|
||||
target: 'ws://192.168.189.206:8000/',
|
||||
rewrite: (path) => path.replace(/^\/vwedWs/, ''),
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user