fcr-core 3.10.1-rc.2 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -326,6 +326,8 @@ class FcrPeerSessionControlImpl {
|
|
|
326
326
|
data,
|
|
327
327
|
cmd
|
|
328
328
|
} = payload;
|
|
329
|
+
const logContext = `cmd=${cmd}, sessionKey=${data.sessionKey}, sessionId=${data.sessionUuid}, ` + `action=${String(data.action)}, senderId=${senderId}, keepAlive=${!!data.keepAlive}`;
|
|
330
|
+
this.logger.info(`[PeerSession] received peer message: ${logContext}, payload=${JSON.stringify(data.payload ?? {})}`);
|
|
329
331
|
if (cmd === '1001') {
|
|
330
332
|
const session = {
|
|
331
333
|
sessionId: data.sessionUuid,
|
|
@@ -358,7 +360,10 @@ class FcrPeerSessionControlImpl {
|
|
|
358
360
|
...params,
|
|
359
361
|
action: 1
|
|
360
362
|
});
|
|
363
|
+
this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
|
|
361
364
|
this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
|
|
365
|
+
} else {
|
|
366
|
+
this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
|
|
362
367
|
}
|
|
363
368
|
if (this._receivedMap.has(session.sessionId)) {
|
|
364
369
|
this._receivedMap.set(session.sessionId, {
|
|
@@ -371,8 +376,10 @@ class FcrPeerSessionControlImpl {
|
|
|
371
376
|
return;
|
|
372
377
|
} else {
|
|
373
378
|
if (!this._receivedMap.has(session.sessionId)) {
|
|
374
|
-
this.logger.info(`[PeerSession]
|
|
379
|
+
this.logger.info(`[PeerSession] forward peer session request to observers: ${logContext}`);
|
|
375
380
|
this._observable.notifyObservers('onPeerSessionReceived', session);
|
|
381
|
+
} else {
|
|
382
|
+
this.logger.info(`[PeerSession] peer session request already cached, update cache only: ${logContext}`);
|
|
376
383
|
}
|
|
377
384
|
this._receivedMap.set(session.sessionId, {
|
|
378
385
|
...session,
|
|
@@ -381,6 +388,8 @@ class FcrPeerSessionControlImpl {
|
|
|
381
388
|
action: 0
|
|
382
389
|
});
|
|
383
390
|
}
|
|
391
|
+
} else {
|
|
392
|
+
this.logger.info(`[PeerSession] ignore expired peer session message: ${logContext}, ` + `timestamp=${session.timestamp}, duration=${session.duration}`);
|
|
384
393
|
}
|
|
385
394
|
} else if (cmd === '1002') {
|
|
386
395
|
if (data.action === 1) {
|
|
@@ -396,9 +405,11 @@ class FcrPeerSessionControlImpl {
|
|
|
396
405
|
cause: data.payload?.cause ?? {},
|
|
397
406
|
keepAlive: !!data.keepAlive
|
|
398
407
|
};
|
|
399
|
-
this.logger.info(`[PeerSession] received peer session accepted ${JSON.stringify(sessionResponse)}`);
|
|
400
408
|
this._scheduleMap.delete(data.sessionUuid);
|
|
409
|
+
this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
|
|
401
410
|
this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
|
|
411
|
+
} else {
|
|
412
|
+
this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
|
|
402
413
|
}
|
|
403
414
|
} else if (data.action === 2) {
|
|
404
415
|
if (this._scheduleMap.has(data.sessionUuid)) {
|
|
@@ -413,11 +424,13 @@ class FcrPeerSessionControlImpl {
|
|
|
413
424
|
cause: data.payload?.cause ?? {},
|
|
414
425
|
keepAlive: !!data.keepAlive
|
|
415
426
|
};
|
|
416
|
-
this.logger.info(`[PeerSession] received peer session rejected ${JSON.stringify(sessionResponse)}`);
|
|
417
427
|
if (this._scheduleMap.has(data.sessionUuid)) {
|
|
418
428
|
this._scheduleMap.delete(data.sessionUuid);
|
|
429
|
+
this.logger.info(`[PeerSession] forward peer session rejected to observers: ${logContext}`);
|
|
419
430
|
this._observable.notifyObservers('onPeerSessionRejected', sessionResponse);
|
|
420
431
|
}
|
|
432
|
+
} else {
|
|
433
|
+
this.logger.info(`[PeerSession] ignore peer session rejected without local schedule: ${logContext}`);
|
|
421
434
|
}
|
|
422
435
|
} else if (data.action === 3) {
|
|
423
436
|
const scheduleSession = this._scheduleMap.get(data.sessionUuid);
|
|
@@ -429,7 +442,6 @@ class FcrPeerSessionControlImpl {
|
|
|
429
442
|
fromUserId: senderId,
|
|
430
443
|
cause: data.payload?.cause ?? {}
|
|
431
444
|
};
|
|
432
|
-
this.logger.info(`[PeerSession] received peer session ended ${JSON.stringify(params)}`);
|
|
433
445
|
if (scheduleSession) {
|
|
434
446
|
this._scheduleMap.delete(data.sessionUuid);
|
|
435
447
|
}
|
|
@@ -437,8 +449,15 @@ class FcrPeerSessionControlImpl {
|
|
|
437
449
|
this._receivedMap.delete(data.sessionUuid);
|
|
438
450
|
}
|
|
439
451
|
this._observable.notifyObservers('onPeerSessionEnded', params.sessionId, params.fromUserId, params.cause);
|
|
452
|
+
this.logger.info(`[PeerSession] forward peer session ended to observers: ${logContext}`);
|
|
453
|
+
} else {
|
|
454
|
+
this.logger.info(`[PeerSession] ignore peer session ended without cached session: ${logContext}`);
|
|
440
455
|
}
|
|
456
|
+
} else {
|
|
457
|
+
this.logger.info(`[PeerSession] ignore peer session response with unknown action: ${logContext}`);
|
|
441
458
|
}
|
|
459
|
+
} else {
|
|
460
|
+
this.logger.info(`[PeerSession] ignore unsupported peer session cmd: ${logContext}`);
|
|
442
461
|
}
|
|
443
462
|
}
|
|
444
463
|
|
|
@@ -78,13 +78,17 @@ class FcrRemoteControlImpl {
|
|
|
78
78
|
data,
|
|
79
79
|
cmd
|
|
80
80
|
} = payload;
|
|
81
|
+
const logContext = `cmd=${cmd}, sessionKey=${data.sessionKey}, sessionId=${data.sessionUuid}, ` + `action=${String(data.action)}, senderId=${senderId}, keepAlive=${!!data.keepAlive}`;
|
|
81
82
|
if (data.sessionKey !== this._remoteControlSessionKey) {
|
|
83
|
+
this.logger.info(`[RemoteControl] ignore peer message because sessionKey does not match remote-control: ${logContext}`);
|
|
82
84
|
return;
|
|
83
85
|
}
|
|
84
86
|
if (cmd === '1001') {
|
|
85
87
|
if (!data.keepAlive) {
|
|
88
|
+
this.logger.info(`[RemoteControl] ignore remote-control update without keepAlive: ${logContext}`);
|
|
86
89
|
return;
|
|
87
90
|
}
|
|
91
|
+
this.logger.info(`[RemoteControl] forward update session for handling: ${logContext}`);
|
|
88
92
|
return await this._handleUpdateRemoteControlSession({
|
|
89
93
|
senderId: senderId,
|
|
90
94
|
sessionKey: data.sessionKey,
|
|
@@ -97,6 +101,7 @@ class FcrRemoteControlImpl {
|
|
|
97
101
|
timestamp: message.timestamp
|
|
98
102
|
});
|
|
99
103
|
} else if (cmd === '1002') {
|
|
104
|
+
this.logger.info(`[RemoteControl] forward delete session for handling: ${logContext}`);
|
|
100
105
|
return await this._handleDeleteRemoteControlSession({
|
|
101
106
|
senderId: senderId,
|
|
102
107
|
sessionKey: data.sessionKey,
|
|
@@ -107,6 +112,8 @@ class FcrRemoteControlImpl {
|
|
|
107
112
|
action: data.action,
|
|
108
113
|
timestamp: message.timestamp
|
|
109
114
|
});
|
|
115
|
+
} else {
|
|
116
|
+
this.logger.info(`[RemoteControl] ignore unsupported cmd: ${logContext}`);
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
119
|
async _handleUpdateRemoteControlSession(data) {
|
|
@@ -320,6 +320,8 @@ export class FcrPeerSessionControlImpl {
|
|
|
320
320
|
data,
|
|
321
321
|
cmd
|
|
322
322
|
} = payload;
|
|
323
|
+
const logContext = `cmd=${cmd}, sessionKey=${data.sessionKey}, sessionId=${data.sessionUuid}, ` + `action=${String(data.action)}, senderId=${senderId}, keepAlive=${!!data.keepAlive}`;
|
|
324
|
+
this.logger.info(`[PeerSession] received peer message: ${logContext}, payload=${JSON.stringify(data.payload ?? {})}`);
|
|
323
325
|
if (cmd === '1001') {
|
|
324
326
|
const session = {
|
|
325
327
|
sessionId: data.sessionUuid,
|
|
@@ -352,7 +354,10 @@ export class FcrPeerSessionControlImpl {
|
|
|
352
354
|
...params,
|
|
353
355
|
action: 1
|
|
354
356
|
});
|
|
357
|
+
this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
|
|
355
358
|
this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
|
|
359
|
+
} else {
|
|
360
|
+
this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
|
|
356
361
|
}
|
|
357
362
|
if (this._receivedMap.has(session.sessionId)) {
|
|
358
363
|
this._receivedMap.set(session.sessionId, {
|
|
@@ -365,8 +370,10 @@ export class FcrPeerSessionControlImpl {
|
|
|
365
370
|
return;
|
|
366
371
|
} else {
|
|
367
372
|
if (!this._receivedMap.has(session.sessionId)) {
|
|
368
|
-
this.logger.info(`[PeerSession]
|
|
373
|
+
this.logger.info(`[PeerSession] forward peer session request to observers: ${logContext}`);
|
|
369
374
|
this._observable.notifyObservers('onPeerSessionReceived', session);
|
|
375
|
+
} else {
|
|
376
|
+
this.logger.info(`[PeerSession] peer session request already cached, update cache only: ${logContext}`);
|
|
370
377
|
}
|
|
371
378
|
this._receivedMap.set(session.sessionId, {
|
|
372
379
|
...session,
|
|
@@ -375,6 +382,8 @@ export class FcrPeerSessionControlImpl {
|
|
|
375
382
|
action: 0
|
|
376
383
|
});
|
|
377
384
|
}
|
|
385
|
+
} else {
|
|
386
|
+
this.logger.info(`[PeerSession] ignore expired peer session message: ${logContext}, ` + `timestamp=${session.timestamp}, duration=${session.duration}`);
|
|
378
387
|
}
|
|
379
388
|
} else if (cmd === '1002') {
|
|
380
389
|
if (data.action === 1) {
|
|
@@ -390,9 +399,11 @@ export class FcrPeerSessionControlImpl {
|
|
|
390
399
|
cause: data.payload?.cause ?? {},
|
|
391
400
|
keepAlive: !!data.keepAlive
|
|
392
401
|
};
|
|
393
|
-
this.logger.info(`[PeerSession] received peer session accepted ${JSON.stringify(sessionResponse)}`);
|
|
394
402
|
this._scheduleMap.delete(data.sessionUuid);
|
|
403
|
+
this.logger.info(`[PeerSession] forward peer session accepted to observers: ${logContext}`);
|
|
395
404
|
this._observable.notifyObservers('onPeerSessionAccepted', sessionResponse);
|
|
405
|
+
} else {
|
|
406
|
+
this.logger.info(`[PeerSession] ignore peer session accepted without local schedule: ${logContext}`);
|
|
396
407
|
}
|
|
397
408
|
} else if (data.action === 2) {
|
|
398
409
|
if (this._scheduleMap.has(data.sessionUuid)) {
|
|
@@ -407,11 +418,13 @@ export class FcrPeerSessionControlImpl {
|
|
|
407
418
|
cause: data.payload?.cause ?? {},
|
|
408
419
|
keepAlive: !!data.keepAlive
|
|
409
420
|
};
|
|
410
|
-
this.logger.info(`[PeerSession] received peer session rejected ${JSON.stringify(sessionResponse)}`);
|
|
411
421
|
if (this._scheduleMap.has(data.sessionUuid)) {
|
|
412
422
|
this._scheduleMap.delete(data.sessionUuid);
|
|
423
|
+
this.logger.info(`[PeerSession] forward peer session rejected to observers: ${logContext}`);
|
|
413
424
|
this._observable.notifyObservers('onPeerSessionRejected', sessionResponse);
|
|
414
425
|
}
|
|
426
|
+
} else {
|
|
427
|
+
this.logger.info(`[PeerSession] ignore peer session rejected without local schedule: ${logContext}`);
|
|
415
428
|
}
|
|
416
429
|
} else if (data.action === 3) {
|
|
417
430
|
const scheduleSession = this._scheduleMap.get(data.sessionUuid);
|
|
@@ -423,7 +436,6 @@ export class FcrPeerSessionControlImpl {
|
|
|
423
436
|
fromUserId: senderId,
|
|
424
437
|
cause: data.payload?.cause ?? {}
|
|
425
438
|
};
|
|
426
|
-
this.logger.info(`[PeerSession] received peer session ended ${JSON.stringify(params)}`);
|
|
427
439
|
if (scheduleSession) {
|
|
428
440
|
this._scheduleMap.delete(data.sessionUuid);
|
|
429
441
|
}
|
|
@@ -431,8 +443,15 @@ export class FcrPeerSessionControlImpl {
|
|
|
431
443
|
this._receivedMap.delete(data.sessionUuid);
|
|
432
444
|
}
|
|
433
445
|
this._observable.notifyObservers('onPeerSessionEnded', params.sessionId, params.fromUserId, params.cause);
|
|
446
|
+
this.logger.info(`[PeerSession] forward peer session ended to observers: ${logContext}`);
|
|
447
|
+
} else {
|
|
448
|
+
this.logger.info(`[PeerSession] ignore peer session ended without cached session: ${logContext}`);
|
|
434
449
|
}
|
|
450
|
+
} else {
|
|
451
|
+
this.logger.info(`[PeerSession] ignore peer session response with unknown action: ${logContext}`);
|
|
435
452
|
}
|
|
453
|
+
} else {
|
|
454
|
+
this.logger.info(`[PeerSession] ignore unsupported peer session cmd: ${logContext}`);
|
|
436
455
|
}
|
|
437
456
|
}
|
|
438
457
|
|
|
@@ -72,13 +72,17 @@ export class FcrRemoteControlImpl {
|
|
|
72
72
|
data,
|
|
73
73
|
cmd
|
|
74
74
|
} = payload;
|
|
75
|
+
const logContext = `cmd=${cmd}, sessionKey=${data.sessionKey}, sessionId=${data.sessionUuid}, ` + `action=${String(data.action)}, senderId=${senderId}, keepAlive=${!!data.keepAlive}`;
|
|
75
76
|
if (data.sessionKey !== this._remoteControlSessionKey) {
|
|
77
|
+
this.logger.info(`[RemoteControl] ignore peer message because sessionKey does not match remote-control: ${logContext}`);
|
|
76
78
|
return;
|
|
77
79
|
}
|
|
78
80
|
if (cmd === '1001') {
|
|
79
81
|
if (!data.keepAlive) {
|
|
82
|
+
this.logger.info(`[RemoteControl] ignore remote-control update without keepAlive: ${logContext}`);
|
|
80
83
|
return;
|
|
81
84
|
}
|
|
85
|
+
this.logger.info(`[RemoteControl] forward update session for handling: ${logContext}`);
|
|
82
86
|
return await this._handleUpdateRemoteControlSession({
|
|
83
87
|
senderId: senderId,
|
|
84
88
|
sessionKey: data.sessionKey,
|
|
@@ -91,6 +95,7 @@ export class FcrRemoteControlImpl {
|
|
|
91
95
|
timestamp: message.timestamp
|
|
92
96
|
});
|
|
93
97
|
} else if (cmd === '1002') {
|
|
98
|
+
this.logger.info(`[RemoteControl] forward delete session for handling: ${logContext}`);
|
|
94
99
|
return await this._handleDeleteRemoteControlSession({
|
|
95
100
|
senderId: senderId,
|
|
96
101
|
sessionKey: data.sessionKey,
|
|
@@ -101,6 +106,8 @@ export class FcrRemoteControlImpl {
|
|
|
101
106
|
action: data.action,
|
|
102
107
|
timestamp: message.timestamp
|
|
103
108
|
});
|
|
109
|
+
} else {
|
|
110
|
+
this.logger.info(`[RemoteControl] ignore unsupported cmd: ${logContext}`);
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
113
|
async _handleUpdateRemoteControlSession(data) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcr-core",
|
|
3
3
|
"description": "Core APIs for building online scenes",
|
|
4
|
-
"version": "3.10.1
|
|
4
|
+
"version": "3.10.1",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/lodash": "^4.14.168",
|
|
42
42
|
"@types/sinon": "^17.0.2",
|
|
43
43
|
"@types/uuid": "^8.3.0",
|
|
44
|
-
"agora-toolchain": "3.10.1
|
|
44
|
+
"agora-toolchain": "3.10.1",
|
|
45
45
|
"core-js": "^3.33.3",
|
|
46
46
|
"decomment": "^0.9.5",
|
|
47
47
|
"husky": "^9.0.11",
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@netless/app-slide": "^0.2.81",
|
|
57
57
|
"@netless/appliance-plugin": "^1.1.21",
|
|
58
|
-
"@netless/forge-room": "1.
|
|
59
|
-
"@netless/forge-rtm": "1.
|
|
60
|
-
"@netless/forge-whiteboard": "1.
|
|
58
|
+
"@netless/forge-room": "1.2.0-alpha.1",
|
|
59
|
+
"@netless/forge-rtm": "1.2.0-alpha.1",
|
|
60
|
+
"@netless/forge-whiteboard": "1.2.0-alpha.1",
|
|
61
61
|
"@netless/video-js-plugin": "^0.3.8",
|
|
62
62
|
"@netless/white-snapshot": "^0.4.2",
|
|
63
63
|
"@netless/window-manager": "^1.0.7-beta.6",
|
|
64
|
-
"agora-foundation": "3.10.1
|
|
65
|
-
"agora-rte-sdk": "3.10.1
|
|
64
|
+
"agora-foundation": "3.10.1",
|
|
65
|
+
"agora-rte-sdk": "3.10.1",
|
|
66
66
|
"await-to-js": "^3.0.0",
|
|
67
67
|
"dayjs": "^1.10.4",
|
|
68
68
|
"easemob-websdk": "4.13.0",
|