New file |
| | |
| | | import * as SignalR from '@microsoft/signalr'; |
| | | import { getToken } from '/@/utils/axios-utils'; |
| | | |
| | | // 初始化SignalR对象 |
| | | const connection = new SignalR.HubConnectionBuilder() |
| | | .configureLogging(SignalR.LogLevel.Information) |
| | | .withUrl(`${window.__env__.VITE_API_URL}/hubs/Plc?token=${getToken()}`, { transport: SignalR.HttpTransportType.WebSockets, skipNegotiation: true }) |
| | | .withAutomaticReconnect({ |
| | | nextRetryDelayInMilliseconds: () => { |
| | | return 5000; // 每5秒重连一次 |
| | | }, |
| | | }) |
| | | .build(); |
| | | |
| | | connection.keepAliveIntervalInMilliseconds = 15 * 1000; // 心跳检测15s |
| | | connection.serverTimeoutInMilliseconds = 30 * 60 * 1000; // 超时时间30m |
| | | |
| | | // 启动连接 |
| | | connection.start().then(() => { |
| | | console.log('启动连接plc'); |
| | | }); |
| | | // 断开连接 |
| | | connection.onclose(async () => { |
| | | console.log('断开连接plc'); |
| | | }); |
| | | // 重连中 |
| | | connection.onreconnecting(() => { |
| | | console.log('服务器已断线plc'); |
| | | }); |
| | | // 重连成功 |
| | | connection.onreconnected(() => { |
| | | console.log('重连成功plc'); |
| | | }); |
| | | |
| | | // connection.on('PublicPlcConn', () => {}); |
| | | |
| | | export { connection as signalR }; |