sources/webrtc-reviewed/src_front/src/config/appConfig.ts

Текстовый файл из учебного комплекта, не свидетельство установленного 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 };