Quellcode durchsuchen

[RN] Add support for callstats

dev1
Saúl Ibarra Corretgé vor 8 Jahren
Ursprung
Commit
e1953644d0
3 geänderte Dateien mit 24 neuen und 9 gelöschten Zeilen
  1. 13
    4
      modules/statistics/CallStats.js
  2. 10
    5
      modules/statistics/statistics.js
  3. 1
    0
      package.json

+ 13
- 4
modules/statistics/CallStats.js Datei anzeigen

@@ -1,7 +1,9 @@
1 1
 /* global callstats */
2
-const logger = require('jitsi-meet-logger').getLogger(__filename);
3
-const GlobalOnErrorHandler = require('../util/GlobalOnErrorHandler');
4 2
 
3
+import RTCBrowserType from '../RTC/RTCBrowserType';
4
+import GlobalOnErrorHandler from '../util/GlobalOnErrorHandler';
5
+
6
+const logger = require('jitsi-meet-logger').getLogger(__filename);
5 7
 
6 8
 /**
7 9
  * We define enumeration of wrtcFuncNames as we need them before
@@ -334,8 +336,15 @@ export default class CallStats {
334 336
             throw new Error('CallStats backend has been initialized already!');
335 337
         }
336 338
         try {
337
-            // eslint-disable-next-line new-cap
338
-            CallStats.backend = new callstats();
339
+            // In react-native we need to import the callstats module, but
340
+            // imports are only allowed at top-level, so we must use require
341
+            // here. Sigh.
342
+            const CallStatsBackend
343
+                = RTCBrowserType.isReactNative()
344
+                    ? require('react-native-callstats/callstats')
345
+                    : callstats;
346
+
347
+            CallStats.backend = new CallStatsBackend();
339 348
 
340 349
             CallStats._traceAndCatchBackendCalls(CallStats.backend);
341 350
 

+ 10
- 5
modules/statistics/statistics.js Datei anzeigen

@@ -1,14 +1,17 @@
1
+import EventEmitter from 'events';
2
+
1 3
 import analytics from './AnalyticsAdapter';
2 4
 import CallStats from './CallStats';
3
-import JitsiTrackError from '../../JitsiTrackError';
4 5
 import LocalStats from './LocalStatsCollector';
5 6
 import RTPStats from './RTPStatsCollector';
6
-import * as StatisticsEvents from '../../service/statistics/Events';
7
+
8
+import RTCBrowserType from '../RTC/RTCBrowserType';
7 9
 import Settings from '../settings/Settings';
10
+import ScriptUtil from '../util/ScriptUtil';
11
+import JitsiTrackError from '../../JitsiTrackError';
12
+import * as StatisticsEvents from '../../service/statistics/Events';
8 13
 
9
-const EventEmitter = require('events');
10 14
 const logger = require('jitsi-meet-logger').getLogger(__filename);
11
-const ScriptUtil = require('../util/ScriptUtil');
12 15
 
13 16
 /**
14 17
  * Stores all active {@link Statistics} instances.
@@ -113,7 +116,9 @@ export default function Statistics(xmpp, options) {
113 116
             // requests to any third parties.
114 117
             && (Statistics.disableThirdPartyRequests !== true);
115 118
     if (this.callStatsIntegrationEnabled) {
116
-        loadCallStatsAPI(this.options.callStatsCustomScriptUrl);
119
+        if (!RTCBrowserType.isReactNative()) {
120
+            loadCallStatsAPI(this.options.callStatsCustomScriptUrl);
121
+        }
117 122
 
118 123
         if (!this.options.callStatsConfIDNamespace) {
119 124
             logger.warn('"callStatsConfIDNamespace" is not defined');

+ 1
- 0
package.json Datei anzeigen

@@ -19,6 +19,7 @@
19 19
     "async": "0.9.0",
20 20
     "current-executing-script": "0.1.3",
21 21
     "jitsi-meet-logger": "jitsi/jitsi-meet-logger",
22
+    "react-native-callstats": "3.19.8",
22 23
     "retry": "0.6.1",
23 24
     "sdp-interop": "0.1.12",
24 25
     "sdp-simulcast": "0.2.1",

Laden…
Abbrechen
Speichern