@epicgames-ps/lib-pixelstreamingsignalling-ue5.8 0.1.0 → 0.2.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.
- package/CHANGELOG.md +21 -0
- package/dist/cjs/Logger.js +23 -9
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/PlayerConnection.js +8 -0
- package/dist/cjs/PlayerConnection.js.map +1 -1
- package/dist/cjs/SFUConnection.js +5 -0
- package/dist/cjs/SFUConnection.js.map +1 -1
- package/dist/cjs/SignallingServer.js +39 -10
- package/dist/cjs/SignallingServer.js.map +1 -1
- package/dist/cjs/StreamerConnection.js +6 -1
- package/dist/cjs/StreamerConnection.js.map +1 -1
- package/dist/cjs/StreamerRegistry.js +6 -3
- package/dist/cjs/StreamerRegistry.js.map +1 -1
- package/dist/cjs/Utils.js +25 -0
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/esm/Logger.js +24 -10
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/PlayerConnection.js +8 -0
- package/dist/esm/PlayerConnection.js.map +1 -1
- package/dist/esm/SFUConnection.js +5 -0
- package/dist/esm/SFUConnection.js.map +1 -1
- package/dist/esm/SignallingServer.js +38 -9
- package/dist/esm/SignallingServer.js.map +1 -1
- package/dist/esm/StreamerConnection.js +6 -1
- package/dist/esm/StreamerConnection.js.map +1 -1
- package/dist/esm/StreamerRegistry.js +6 -3
- package/dist/esm/StreamerRegistry.js.map +1 -1
- package/dist/esm/Utils.js +22 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/types/Logger.d.ts +2 -0
- package/dist/types/SignallingServer.d.ts +33 -0
- package/dist/types/Utils.d.ts +14 -0
- package/eslint.config.mjs +1 -1
- package/jest.config.js +14 -0
- package/package.json +17 -14
- package/src/Logger.test.ts +109 -0
- package/src/Logger.ts +30 -9
- package/src/PlayerConnection.ts +12 -2
- package/src/SFUConnection.test.ts +45 -0
- package/src/SFUConnection.ts +5 -0
- package/src/SignallingServer.maxPayload.test.ts +69 -0
- package/src/SignallingServer.test.ts +63 -0
- package/src/SignallingServer.ts +82 -6
- package/src/StreamerConnection.test.ts +48 -0
- package/src/StreamerConnection.ts +7 -1
- package/src/StreamerRegistry.test.ts +27 -0
- package/src/StreamerRegistry.ts +7 -3
- package/src/Utils.test.ts +31 -0
- package/src/Utils.ts +25 -0
- package/tsconfig.jest.json +9 -0
- package/tsconfig.json +1 -0
|
@@ -92,6 +92,14 @@ export class PlayerConnection {
|
|
|
92
92
|
else {
|
|
93
93
|
Logger.warn(`Subscribing to ${streamerId}`);
|
|
94
94
|
this.subscribe(streamerId);
|
|
95
|
+
// subscribe() declines silently, most often because maxSubscribers is reached, and
|
|
96
|
+
// says so only by leaving subscribedStreamer unset. Forwarding anyway dereferences
|
|
97
|
+
// null, which surfaces as an uncaughtException and exits the process.
|
|
98
|
+
if (!this.subscribedStreamer) {
|
|
99
|
+
Logger.error(`Player ${this.playerId} could not be subscribed to ${streamerId}. Disconnecting.`);
|
|
100
|
+
this.disconnect();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
95
103
|
}
|
|
96
104
|
}
|
|
97
105
|
message.playerId = this.playerId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerConnection.js","sourceRoot":"","sources":["../../src/PlayerConnection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlayerConnection.js","sourceRoot":"","sources":["../../src/PlayerConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,6 +109,11 @@ export class SFUConnection extends EventEmitter {
|
|
|
109
109
|
Logger.error(`subscribe: SFU ${this.playerId} tried to subscribe to a non-existent streamer ${streamerId}`);
|
|
110
110
|
return;
|
|
111
111
|
}
|
|
112
|
+
// Leave the previous streamer first, as PlayerConnection does, so it stops forwarding to this SFU
|
|
113
|
+
// and a later disconnect of it cannot detach the SFU from the streamer it is now on.
|
|
114
|
+
if (this.subscribedStreamer) {
|
|
115
|
+
this.unsubscribe();
|
|
116
|
+
}
|
|
112
117
|
this.subscribedStreamer = streamer;
|
|
113
118
|
// Register as a subscriber of the upstream streamer so it will forward signalling messages
|
|
114
119
|
// back to this SFU (the streamer's forwardMessage only sends to subscribed players).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SFUConnection.js","sourceRoot":"","sources":["../../src/SFUConnection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SFUConnection.js","sourceRoot":"","sources":["../../src/SFUConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,13 @@ import { StreamerRegistry } from './StreamerRegistry';
|
|
|
7
7
|
import { PlayerRegistry } from './PlayerRegistry';
|
|
8
8
|
import { Messages, MessageHelpers, SignallingProtocol, KeepaliveMonitor } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.8';
|
|
9
9
|
import { stringify } from './Utils';
|
|
10
|
+
/**
|
|
11
|
+
* The largest websocket message, in bytes, accepted on the streamer, player and SFU ports. Signalling
|
|
12
|
+
* messages are a few kilobytes, and ws would otherwise accept up to 100 MiB in one message. A
|
|
13
|
+
* connection that sends more is closed with code 1009. Setting maxPayload in streamerWsOptions,
|
|
14
|
+
* playerWsOptions or sfuWsOptions overrides it for that port.
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_MAX_PAYLOAD = 1024 * 1024;
|
|
10
17
|
/**
|
|
11
18
|
* The main signalling server object.
|
|
12
19
|
* Contains a streamer and player registry and handles setting up of websockets
|
|
@@ -33,31 +40,53 @@ export class SignallingServer {
|
|
|
33
40
|
return;
|
|
34
41
|
}
|
|
35
42
|
// Streamer connections
|
|
36
|
-
const streamerServer = new wslib.WebSocketServer(Object.assign({ port: config.streamerPort, backlog: 1 }, config.streamerWsOptions));
|
|
43
|
+
const streamerServer = new wslib.WebSocketServer(Object.assign({ port: config.streamerPort, backlog: 1, maxPayload: DEFAULT_MAX_PAYLOAD }, config.streamerWsOptions));
|
|
37
44
|
streamerServer.on('connection', this.onStreamerConnected.bind(this));
|
|
38
45
|
Logger.info(`Listening for streamer connections on port ${config.streamerPort}`);
|
|
39
46
|
// Player connections
|
|
40
47
|
const server = config.httpsServer || config.httpServer;
|
|
41
|
-
const playerServer = new wslib.WebSocketServer(Object.assign({ server: server, port: server ? undefined : config.playerPort }, config.playerWsOptions));
|
|
48
|
+
const playerServer = new wslib.WebSocketServer(Object.assign({ server: server, port: server ? undefined : config.playerPort, maxPayload: DEFAULT_MAX_PAYLOAD }, config.playerWsOptions));
|
|
42
49
|
playerServer.on('connection', this.onPlayerConnected.bind(this));
|
|
43
50
|
if (!config.httpServer && !config.httpsServer) {
|
|
44
51
|
Logger.info(`Listening for player connections on port ${config.playerPort}`);
|
|
45
52
|
}
|
|
46
53
|
// Optional SFU connections
|
|
47
54
|
if (config.sfuPort) {
|
|
48
|
-
const sfuServer = new wslib.WebSocketServer(Object.assign({ port: config.sfuPort, backlog: 1 }, config.sfuWsOptions));
|
|
55
|
+
const sfuServer = new wslib.WebSocketServer(Object.assign({ port: config.sfuPort, backlog: 1, maxPayload: DEFAULT_MAX_PAYLOAD }, config.sfuWsOptions));
|
|
49
56
|
sfuServer.on('connection', this.onSFUConnected.bind(this));
|
|
50
57
|
Logger.info(`Listening for SFU connections on port ${config.sfuPort}`);
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
|
-
sendConfigMessage(connection) {
|
|
60
|
+
sendConfigMessage(connection, peerRequest) {
|
|
54
61
|
// peer connection options is a general field with all optional fields;
|
|
55
62
|
// it doesnt play nice with mergePartial so we just add it verbatim
|
|
56
63
|
const message = MessageHelpers.createMessage(Messages.config, this.protocolConfig);
|
|
57
|
-
|
|
58
|
-
message.peerConnectionOptions = this.protocolConfig['peerConnectionOptions'];
|
|
64
|
+
message.peerConnectionOptions = this.getPeerOptions(peerRequest);
|
|
59
65
|
connection.sendMessage(message);
|
|
60
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Resolves the peer options for one connecting peer, deferring to peerOptionsProvider when the
|
|
69
|
+
* consumer supplied one.
|
|
70
|
+
*/
|
|
71
|
+
getPeerOptions(peerRequest) {
|
|
72
|
+
if (!this.config.peerOptionsProvider) {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
74
|
+
return this.protocolConfig['peerConnectionOptions'];
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
// The provider is consumer code, so its return is unknown to us; it travels as an
|
|
78
|
+
// opaque blob in the config message either way.
|
|
79
|
+
return this.config.peerOptionsProvider(peerRequest);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
// A provider is consumer code and may reach outside the process for a credential. If it
|
|
83
|
+
// fails we still send a config message, because a peer that never receives one simply
|
|
84
|
+
// waits forever with nothing in its log to explain why.
|
|
85
|
+
Logger.error('peerOptionsProvider threw for %s peer %s, falling back to the static peer options: %s', peerRequest.peerType, peerRequest.peerId, error instanceof Error ? error.message : stringify(error));
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
87
|
+
return this.protocolConfig['peerConnectionOptions'];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
61
90
|
onStreamerConnected(ws, request) {
|
|
62
91
|
Logger.info(`New streamer connection: %s`, request.socket.remoteAddress);
|
|
63
92
|
const newStreamer = new StreamerConnection(this, ws, request.socket.remoteAddress, request);
|
|
@@ -68,7 +97,7 @@ export class SignallingServer {
|
|
|
68
97
|
this.streamerRegistry.remove(newStreamer);
|
|
69
98
|
Logger.info(`Streamer %s (%s) disconnected.`, newStreamer.streamerId, request.socket.remoteAddress);
|
|
70
99
|
});
|
|
71
|
-
this.sendConfigMessage(newStreamer);
|
|
100
|
+
this.sendConfigMessage(newStreamer, { peerType: 'streamer', peerId: newStreamer.streamerId });
|
|
72
101
|
}
|
|
73
102
|
onPlayerConnected(ws, request) {
|
|
74
103
|
Logger.info(`New player connection: %s (%s)`, request.socket.remoteAddress, request.url);
|
|
@@ -93,7 +122,7 @@ export class SignallingServer {
|
|
|
93
122
|
ws.terminate();
|
|
94
123
|
};
|
|
95
124
|
}
|
|
96
|
-
this.sendConfigMessage(newPlayer);
|
|
125
|
+
this.sendConfigMessage(newPlayer, { peerType: 'player', peerId: newPlayer.playerId });
|
|
97
126
|
}
|
|
98
127
|
onSFUConnected(ws, request) {
|
|
99
128
|
Logger.info(`New SFU connection: %s`, request.socket.remoteAddress);
|
|
@@ -106,7 +135,7 @@ export class SignallingServer {
|
|
|
106
135
|
this.playerRegistry.remove(newSFU);
|
|
107
136
|
Logger.info(`SFU %s (%s) disconnected.`, newSFU.streamerId, request.socket.remoteAddress);
|
|
108
137
|
});
|
|
109
|
-
this.sendConfigMessage(newSFU);
|
|
138
|
+
this.sendConfigMessage(newSFU, { peerType: 'sfu', peerId: newSFU.streamerId });
|
|
110
139
|
}
|
|
111
140
|
}
|
|
112
141
|
//# sourceMappingURL=SignallingServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignallingServer.js","sourceRoot":"","sources":["../../src/SignallingServer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAwB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACH,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SignallingServer.js","sourceRoot":"","sources":["../../src/SignallingServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,7 +121,12 @@ export class StreamerConnection extends EventEmitter {
|
|
|
121
121
|
}
|
|
122
122
|
const player = this.server.playerRegistry.get(message.playerId);
|
|
123
123
|
if (player) {
|
|
124
|
-
|
|
124
|
+
// ws throws on a reason over 123 bytes or one that is not a string, which would crash the
|
|
125
|
+
// server. Such a reason is dropped; the player is still closed.
|
|
126
|
+
const reason = typeof message.reason === 'string' && Buffer.byteLength(message.reason) <= 123
|
|
127
|
+
? message.reason
|
|
128
|
+
: undefined;
|
|
129
|
+
player.protocol.disconnect(1011, reason);
|
|
125
130
|
}
|
|
126
131
|
}
|
|
127
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamerConnection.js","sourceRoot":"","sources":["../../src/StreamerConnection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StreamerConnection.js","sourceRoot":"","sources":["../../src/StreamerConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,17 +83,20 @@ export class StreamerRegistry extends EventEmitter {
|
|
|
83
83
|
}
|
|
84
84
|
onEndpointId(streamer, message) {
|
|
85
85
|
const oldId = streamer.streamerId;
|
|
86
|
+
// The id arrives as any JSON value. A non-string one is treated as no id, because sanitizing it
|
|
87
|
+
// would store a value that later lookups cannot handle.
|
|
88
|
+
const requestedId = typeof message.id === 'string' ? message.id : '';
|
|
86
89
|
// id might conflict or be invalid so here we sanitize it
|
|
87
|
-
const sanitizedId = this.sanitizeStreamerId(
|
|
90
|
+
const sanitizedId = this.sanitizeStreamerId(requestedId);
|
|
88
91
|
let committedId = sanitizedId;
|
|
89
92
|
if (this.authorizeStreamerId) {
|
|
90
93
|
// Let the consumer accept the default id, override it (e.g. namespace per tenant), or
|
|
91
94
|
// reject the registration entirely. This is where anti-squatting policy lives.
|
|
92
95
|
committedId = this.authorizeStreamerId({
|
|
93
96
|
streamer,
|
|
94
|
-
requestedId
|
|
97
|
+
requestedId,
|
|
95
98
|
sanitizedId,
|
|
96
|
-
collided: !!
|
|
99
|
+
collided: !!requestedId && sanitizedId !== requestedId
|
|
97
100
|
});
|
|
98
101
|
if (committedId === null) {
|
|
99
102
|
Logger.warn(`StreamerRegistry: streamer id '${message.id}' (was ${oldId}) rejected by authorizer. Disconnecting.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamerRegistry.js","sourceRoot":"","sources":["../../src/StreamerRegistry.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAGH,QAAQ,EACR,cAAc,EAEd,YAAY,EACf,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA+DlC;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAQ9C,YAAY,mBAA0C;QAClD,KAAK,EAAE,CAAC;QAPZ,4BAAuB,GAAW,iBAAiB,CAAC;QAQhD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,QAAmB;QACnB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CACR,gDAAgD,QAAQ,CAAC,UAAU,8BAA8B,CACpG,CAAC;YACF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,2CAA2C;QAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAmB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACR,8CAA8C,QAAQ,CAAC,UAAU,uBAAuB,CAC3F,CAAC;YACF,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,UAAkB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACH,kBAAkB;QACd,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,QAAmB,EAAE,OAA4B;QAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;QAElC,
|
|
1
|
+
{"version":3,"file":"StreamerRegistry.js","sourceRoot":"","sources":["../../src/StreamerRegistry.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Utils.js
CHANGED
|
@@ -12,4 +12,26 @@ export function stringify(obj) {
|
|
|
12
12
|
export function beautify(obj) {
|
|
13
13
|
return jsonc.stringify(obj, undefined, '\t');
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* The longest text, or protocol message as JSON, that the logger writes whole. A client chooses the
|
|
17
|
+
* size of what it sends, so anything longer is cut rather than written to the log in full.
|
|
18
|
+
*/
|
|
19
|
+
export const MAX_LOGGED_LENGTH = 16 * 1024;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the text, or if it is longer than MAX_LOGGED_LENGTH, its start and its full length.
|
|
22
|
+
*/
|
|
23
|
+
export function limitLogText(text) {
|
|
24
|
+
if (text.length <= MAX_LOGGED_LENGTH) {
|
|
25
|
+
return text;
|
|
26
|
+
}
|
|
27
|
+
return `${text.slice(0, MAX_LOGGED_LENGTH)}... (${text.length} characters)`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns a protocol message as the log file should hold it: the message itself while its JSON fits in
|
|
31
|
+
* MAX_LOGGED_LENGTH, otherwise its JSON text cut by limitLogText.
|
|
32
|
+
*/
|
|
33
|
+
export function limitLoggedMessage(message) {
|
|
34
|
+
const text = JSON.stringify(message);
|
|
35
|
+
return text.length <= MAX_LOGGED_LENGTH ? message : limitLogText(text);
|
|
36
|
+
}
|
|
15
37
|
//# sourceMappingURL=Utils.js.map
|
package/dist/esm/Utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/Utils.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAQ;IAC9B,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/Utils.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAQ;IAC9B,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,QAAQ,IAAI,CAAC,MAAM,cAAc,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/types/Logger.d.ts
CHANGED
|
@@ -20,10 +20,38 @@ export interface IServerConfig {
|
|
|
20
20
|
maxSubscribers?: number;
|
|
21
21
|
playerKeepaliveTimeout?: number;
|
|
22
22
|
authorizeStreamerId?: StreamerIdAuthorizer;
|
|
23
|
+
peerOptionsProvider?: PeerOptionsProvider;
|
|
23
24
|
}
|
|
24
25
|
export type ProtocolConfig = {
|
|
25
26
|
[key: string]: any;
|
|
26
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* The kind of peer a set of peer options is being built for. Provided so a consumer can vary what
|
|
30
|
+
* it returns by peer - a streamer connects once and holds its configuration for as long as it runs,
|
|
31
|
+
* where a player receives a fresh one every time it connects.
|
|
32
|
+
*/
|
|
33
|
+
export type PeerType = 'streamer' | 'player' | 'sfu';
|
|
34
|
+
/**
|
|
35
|
+
* Describes the peer that is about to be sent a config message.
|
|
36
|
+
*/
|
|
37
|
+
export interface IPeerOptionsRequest {
|
|
38
|
+
peerType: PeerType;
|
|
39
|
+
peerId: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* An optional consumer-supplied hook that builds the peer configuration for one connecting peer.
|
|
43
|
+
* Return the object to send as peerConnectionOptions in that peer's config message. This is the
|
|
44
|
+
* seam for per-connection credentials without the project committing to a credential scheme of its
|
|
45
|
+
* own. A provider that throws is treated as having no answer, and the static peerOptions are sent.
|
|
46
|
+
*/
|
|
47
|
+
export type PeerOptionsProvider = (request: IPeerOptionsRequest) => unknown;
|
|
48
|
+
/**
|
|
49
|
+
* The largest websocket message, in bytes, accepted on the streamer, player and SFU ports. Signalling
|
|
50
|
+
* messages are a few kilobytes, and ws would otherwise accept up to 100 MiB in one message. A
|
|
51
|
+
* connection that sends more is closed with code 1009. Setting maxPayload in streamerWsOptions,
|
|
52
|
+
* playerWsOptions or sfuWsOptions overrides it for that port.
|
|
53
|
+
*/
|
|
54
|
+
export declare const DEFAULT_MAX_PAYLOAD: number;
|
|
27
55
|
/**
|
|
28
56
|
* The main signalling server object.
|
|
29
57
|
* Contains a streamer and player registry and handles setting up of websockets
|
|
@@ -42,6 +70,11 @@ export declare class SignallingServer {
|
|
|
42
70
|
*/
|
|
43
71
|
constructor(config: IServerConfig);
|
|
44
72
|
private sendConfigMessage;
|
|
73
|
+
/**
|
|
74
|
+
* Resolves the peer options for one connecting peer, deferring to peerOptionsProvider when the
|
|
75
|
+
* consumer supplied one.
|
|
76
|
+
*/
|
|
77
|
+
private getPeerOptions;
|
|
45
78
|
private onStreamerConnected;
|
|
46
79
|
private onPlayerConnected;
|
|
47
80
|
private onSFUConnected;
|
package/dist/types/Utils.d.ts
CHANGED
|
@@ -6,3 +6,17 @@ export declare function stringify(obj: any): string;
|
|
|
6
6
|
* Circular reference save version of JSON.stringify with extra formatting.
|
|
7
7
|
*/
|
|
8
8
|
export declare function beautify(obj: any): string;
|
|
9
|
+
/**
|
|
10
|
+
* The longest text, or protocol message as JSON, that the logger writes whole. A client chooses the
|
|
11
|
+
* size of what it sends, so anything longer is cut rather than written to the log in full.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MAX_LOGGED_LENGTH: number;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the text, or if it is longer than MAX_LOGGED_LENGTH, its start and its full length.
|
|
16
|
+
*/
|
|
17
|
+
export declare function limitLogText(text: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Returns a protocol message as the log file should hold it: the message itself while its JSON fits in
|
|
20
|
+
* MAX_LOGGED_LENGTH, otherwise its JSON text cut by limitLogText.
|
|
21
|
+
*/
|
|
22
|
+
export declare function limitLoggedMessage(message: object): object | string;
|
package/eslint.config.mjs
CHANGED
package/jest.config.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: "ts-jest",
|
|
3
|
+
testEnvironment: "node",
|
|
4
|
+
transform: {
|
|
5
|
+
"^.+\.ts$": [
|
|
6
|
+
"ts-jest",
|
|
7
|
+
{
|
|
8
|
+
tsconfig: "tsconfig.jest.json",
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
},
|
|
12
|
+
modulePathIgnorePatterns: ["<rootDir>/dist/"],
|
|
13
|
+
testPathIgnorePatterns: ["<rootDir>/dist/", "/node_modules/"],
|
|
14
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epicgames-ps/lib-pixelstreamingsignalling-ue5.8",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Basic signalling library for developers wishing to build applications that signal a Pixel Streaming application.",
|
|
5
5
|
"main": "dist/cjs/pixelstreamingsignalling.js",
|
|
6
6
|
"module": "dist/esm/pixelstreamingsignalling.js",
|
|
@@ -14,33 +14,36 @@
|
|
|
14
14
|
"rebuild": "npm run clean && npm run build",
|
|
15
15
|
"watch": "nodemon -V -d 3 --watch src --watch ../Common/dist -e \"ts,js,mjs,cjs,json\" --exec \"npm run build:cjs\"",
|
|
16
16
|
"lint": "eslint src",
|
|
17
|
-
"test": "
|
|
17
|
+
"test": "jest"
|
|
18
18
|
},
|
|
19
19
|
"author": "Epic Games",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@eslint/js": "^9.
|
|
22
|
+
"@eslint/js": "^9.39.5",
|
|
23
23
|
"@types/cors": "^2.8.17",
|
|
24
24
|
"@types/express": "^5.0.0",
|
|
25
|
-
"@types/
|
|
25
|
+
"@types/jest": "^29.5.14",
|
|
26
|
+
"@types/node": "^22.20.5",
|
|
26
27
|
"@types/ws": "^8.5.14",
|
|
27
28
|
"eslint": "^9.39.0",
|
|
28
29
|
"eslint-config-prettier": "^10.0.1",
|
|
29
|
-
"eslint-plugin-prettier": "^5.
|
|
30
|
-
"eslint-plugin-tsdoc": "^0.4
|
|
30
|
+
"eslint-plugin-prettier": "^5.5.7",
|
|
31
|
+
"eslint-plugin-tsdoc": "^0.5.4",
|
|
31
32
|
"nodemon": "^3.1.9",
|
|
33
|
+
"jest": "^29.7.0",
|
|
32
34
|
"rimraf": "^6.0.1",
|
|
33
|
-
"typedoc": "^0.28.
|
|
34
|
-
"typedoc-plugin-markdown": "^4.
|
|
35
|
+
"typedoc": "^0.28.20",
|
|
36
|
+
"typedoc-plugin-markdown": "^4.14.1",
|
|
37
|
+
"ts-jest": "^29.4.15",
|
|
35
38
|
"typescript": "^5.7.3",
|
|
36
|
-
"typescript-eslint": "8.
|
|
39
|
+
"typescript-eslint": "8.72.1"
|
|
37
40
|
},
|
|
38
41
|
"dependencies": {
|
|
39
|
-
"body-parser": "^
|
|
42
|
+
"body-parser": "^2.4.0",
|
|
40
43
|
"cors": "^2.8.5",
|
|
41
|
-
"express": "^
|
|
42
|
-
"express-rate-limit": "^8.
|
|
43
|
-
"helmet": "^8.
|
|
44
|
+
"express": "^5.3.0",
|
|
45
|
+
"express-rate-limit": "^8.7.2",
|
|
46
|
+
"helmet": "^8.3.0",
|
|
44
47
|
"hsts": "^2.2.0",
|
|
45
48
|
"jsonc": "^2.0.0",
|
|
46
49
|
"logform": "^2.7.0",
|
|
@@ -49,7 +52,7 @@
|
|
|
49
52
|
"ws": "^8.18.0"
|
|
50
53
|
},
|
|
51
54
|
"peerDependencies": {
|
|
52
|
-
"@epicgames-ps/lib-pixelstreamingcommon-ue5.8": "^0.1.
|
|
55
|
+
"@epicgames-ps/lib-pixelstreamingcommon-ue5.8": "^0.1.1"
|
|
53
56
|
},
|
|
54
57
|
"repository": {
|
|
55
58
|
"type": "git",
|