Текстовый файл из учебного комплекта, не свидетельство установленного runtime. Вернуться к учебнику · Исходный файл
1 export type AppConfig = { 2 signaling: { 3 offerEndpoint: string; 4 }; 5 webrtc: { 6 iceServers: RTCIceServer[]; 7 iceCandidatePoolSize: number; 8 bundlePolicy: "balanced" | "max-bundle" | "max-compat"; 9 rtcpMuxPolicy: "require"; 10 iceGatherTimeoutMs: number; 11 }; 12 audio: { 13 vad: { 14 fftSize: number; 15 attackSeconds: number; 16 releaseSeconds: number; 17 }; 18 input: { 19 echoCancellationDefault: boolean; 20 noiseSuppressionDefault: boolean; 21 }; 22 analyser: { 23 fftSizeBg: number; 24 historySecondsBg: number; 25 fftSizeMic: number; 26 historySecondsMic: number; 27 }; 28 }; 29 ui: { 30 debug: boolean; 31 }; 32 nats: { 33 url: string; 34 eventsSubject: string; 35 clientName: string; 36 user?: string; 37 pass?: string; 38 token?: string; 39 }; 40 }; 41 42 const defaultNatsUrl = import.meta.env.DEV 43 ? "ws://localhost:9222" 44 : `${location.protocol === "https:" ? "wss" : "ws"}://${location.host}/ws`; 45 46 const natsUrl = 47 (window as any)?.SETTINGS?.NATS_URL ?? defaultNatsUrl; 48 const natsEventsSubject = "nats.events.user123"; 49 const natsClientName = "src_front"; 50 const natsUser = (window as any)?.SETTINGS?.NATS_USER; 51 const natsPass = (window as any)?.SETTINGS?.NATS_PASS; 52 const natsToken = (window as any)?.SETTINGS?.NATS_TOKEN; 53 54 export const appConfig: AppConfig = { 55 signaling: { 56 offerEndpoint: "/core/offer", 57 }, 58 webrtc: { 59 iceServers: [{ urls: ["stun:stun.gis-master.ru:3478"] }], 60 iceCandidatePoolSize: 4, 61 bundlePolicy: "max-bundle", 62 rtcpMuxPolicy: "require", 63 iceGatherTimeoutMs: 1000, 64 }, 65 audio: { 66 vad: { 67 fftSize: 2048, 68 attackSeconds: 0.02, 69 releaseSeconds: 0.02, 70 }, 71 input: { 72 echoCancellationDefault: true, 73 noiseSuppressionDefault: true, 74 }, 75 analyser: { 76 fftSizeBg: 512, 77 historySecondsBg: 3, 78 fftSizeMic: 256, 79 historySecondsMic: 0.5, 80 }, 81 }, 82 ui: { 83 debug: true, 84 }, 85 nats: { 86 url: natsUrl, 87 eventsSubject: natsEventsSubject, 88 clientName: natsClientName, 89 user: natsUser, 90 pass: natsPass, 91 token: natsToken, 92 }, 93 };