Browse Source

[RN] Add support for callstats

dev1
Saúl Ibarra Corretgé 8 years ago
parent
commit
e1953644d0
3 changed files with 24 additions and 9 deletions
  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 View File

1
 /* global callstats */
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
  * We define enumeration of wrtcFuncNames as we need them before
9
  * We define enumeration of wrtcFuncNames as we need them before
334
             throw new Error('CallStats backend has been initialized already!');
336
             throw new Error('CallStats backend has been initialized already!');
335
         }
337
         }
336
         try {
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
             CallStats._traceAndCatchBackendCalls(CallStats.backend);
349
             CallStats._traceAndCatchBackendCalls(CallStats.backend);
341
 
350
 

+ 10
- 5
modules/statistics/statistics.js View File

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

+ 1
- 0
package.json View File

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

Loading…
Cancel
Save