2026-03-06 13:59:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* WebSocket配置文件
|
2026-05-14 14:29:51 +08:00
|
|
|
|
* 统一管理WebSocket相关配置(环境与 config/app-env.js 一致)
|
2026-03-06 13:59:22 +08:00
|
|
|
|
*/
|
|
|
|
|
|
|
2026-05-14 14:29:51 +08:00
|
|
|
|
import { getDoctorWxWsUrls, isDoctorWxDev } from './app-env.js';
|
|
|
|
|
|
|
|
|
|
|
|
const wsUrls = getDoctorWxWsUrls();
|
2026-03-06 13:59:22 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* WebSocket配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export const websocketConfig = {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* WebSocket URL配置
|
|
|
|
|
|
* dev: 开发环境WebSocket地址
|
|
|
|
|
|
* prod: 生产环境WebSocket地址
|
|
|
|
|
|
*/
|
2026-05-14 14:29:51 +08:00
|
|
|
|
url: wsUrls,
|
|
|
|
|
|
|
2026-03-06 13:59:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 获取当前环境的WebSocket URL
|
|
|
|
|
|
* @returns {string} WebSocket URL
|
|
|
|
|
|
*/
|
|
|
|
|
|
getUrl() {
|
2026-05-14 14:29:51 +08:00
|
|
|
|
return isDoctorWxDev() ? wsUrls.dev : wsUrls.prod;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 由 WebSocket URL 推导 IM 服务 HTTP 基址(与 WS 同 host,用于 Go API)
|
|
|
|
|
|
* 例:ws://127.0.0.1:12080/ws -> http://127.0.0.1:12080
|
|
|
|
|
|
*/
|
|
|
|
|
|
getHttpBaseUrl() {
|
|
|
|
|
|
const ws = this.getUrl();
|
|
|
|
|
|
if (!ws || typeof ws !== 'string') return '';
|
|
|
|
|
|
let base = ws
|
|
|
|
|
|
.replace(/^wss:\/\//i, 'https://')
|
|
|
|
|
|
.replace(/^ws:\/\//i, 'http://');
|
|
|
|
|
|
base = base.replace(/\/?ws\/?$/i, '');
|
|
|
|
|
|
return base.replace(/\/+$/, '') || base;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/** Go IM:POST /api/send-to-user */
|
|
|
|
|
|
getSendToUserApiUrl() {
|
|
|
|
|
|
const base = this.getHttpBaseUrl();
|
|
|
|
|
|
if (!base) return '';
|
|
|
|
|
|
return `${base}/api/send-to-user`;
|
2026-03-06 13:59:22 +08:00
|
|
|
|
},
|
2026-05-14 14:29:51 +08:00
|
|
|
|
|
2026-03-06 13:59:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 重连配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
reconnect: {
|
|
|
|
|
|
maxAttempts: 5, // 最大重连次数
|
|
|
|
|
|
initialDelay: 1000, // 初始重连延迟(毫秒)
|
|
|
|
|
|
maxDelay: 30000 // 最大重连延迟(毫秒)
|
|
|
|
|
|
},
|
2026-05-14 14:29:51 +08:00
|
|
|
|
|
2026-03-06 13:59:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 心跳配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
heartbeat: {
|
|
|
|
|
|
interval: 300000 // 心跳间隔(毫秒),5分钟
|
|
|
|
|
|
},
|
2026-05-14 14:29:51 +08:00
|
|
|
|
|
2026-03-06 13:59:22 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 用户标识配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
user: {
|
|
|
|
|
|
prefix: 'doctor-', // 医生小程序使用doctor-前缀
|
|
|
|
|
|
platform: 'doctor-miniprogram' // 平台标识(医生小程序)
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|