@epicgames-ps/lib-pixelstreamingsignalling-ue5.8 0.1.0

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.
Files changed (112) hide show
  1. package/.lintstagedrc.mjs +7 -0
  2. package/.prettierignore +0 -0
  3. package/CHANGELOG.md +21 -0
  4. package/README.md +32 -0
  5. package/dist/cjs/Logger.js +148 -0
  6. package/dist/cjs/Logger.js.map +1 -0
  7. package/dist/cjs/LoggingUtils.js +64 -0
  8. package/dist/cjs/LoggingUtils.js.map +1 -0
  9. package/dist/cjs/PlayerConnection.js +220 -0
  10. package/dist/cjs/PlayerConnection.js.map +1 -0
  11. package/dist/cjs/PlayerRegistry.js +77 -0
  12. package/dist/cjs/PlayerRegistry.js.map +1 -0
  13. package/dist/cjs/SFUConnection.js +264 -0
  14. package/dist/cjs/SFUConnection.js.map +1 -0
  15. package/dist/cjs/SignallingServer.js +149 -0
  16. package/dist/cjs/SignallingServer.js.map +1 -0
  17. package/dist/cjs/StreamerConnection.js +172 -0
  18. package/dist/cjs/StreamerConnection.js.map +1 -0
  19. package/dist/cjs/StreamerRegistry.js +149 -0
  20. package/dist/cjs/StreamerRegistry.js.map +1 -0
  21. package/dist/cjs/Utils.js +19 -0
  22. package/dist/cjs/Utils.js.map +1 -0
  23. package/dist/cjs/WebServer.js +124 -0
  24. package/dist/cjs/WebServer.js.map +1 -0
  25. package/dist/cjs/pixelstreamingsignalling.js +28 -0
  26. package/dist/cjs/pixelstreamingsignalling.js.map +1 -0
  27. package/dist/esm/Logger.js +141 -0
  28. package/dist/esm/Logger.js.map +1 -0
  29. package/dist/esm/LoggingUtils.js +58 -0
  30. package/dist/esm/LoggingUtils.js.map +1 -0
  31. package/dist/esm/PlayerConnection.js +183 -0
  32. package/dist/esm/PlayerConnection.js.map +1 -0
  33. package/dist/esm/PlayerRegistry.js +73 -0
  34. package/dist/esm/PlayerRegistry.js.map +1 -0
  35. package/dist/esm/SFUConnection.js +227 -0
  36. package/dist/esm/SFUConnection.js.map +1 -0
  37. package/dist/esm/SignallingServer.js +112 -0
  38. package/dist/esm/SignallingServer.js.map +1 -0
  39. package/dist/esm/StreamerConnection.js +135 -0
  40. package/dist/esm/StreamerConnection.js.map +1 -0
  41. package/dist/esm/StreamerRegistry.js +145 -0
  42. package/dist/esm/StreamerRegistry.js.map +1 -0
  43. package/dist/esm/Utils.js +15 -0
  44. package/dist/esm/Utils.js.map +1 -0
  45. package/dist/esm/WebServer.js +117 -0
  46. package/dist/esm/WebServer.js.map +1 -0
  47. package/dist/esm/pixelstreamingsignalling.js +12 -0
  48. package/dist/esm/pixelstreamingsignalling.js.map +1 -0
  49. package/dist/types/Logger.d.ts +20 -0
  50. package/dist/types/LoggingUtils.d.ts +44 -0
  51. package/dist/types/PlayerConnection.d.ts +66 -0
  52. package/dist/types/PlayerRegistry.d.ts +66 -0
  53. package/dist/types/SFUConnection.d.ts +85 -0
  54. package/dist/types/SignallingServer.d.ts +48 -0
  55. package/dist/types/StreamerConnection.d.ts +61 -0
  56. package/dist/types/StreamerRegistry.d.ts +96 -0
  57. package/dist/types/Utils.d.ts +8 -0
  58. package/dist/types/WebServer.d.ts +42 -0
  59. package/dist/types/pixelstreamingsignalling.d.ts +9 -0
  60. package/docs/Logger/README.md +19 -0
  61. package/docs/Logger/functions/InitLogging.md +26 -0
  62. package/docs/Logger/interfaces/IConfig.md +41 -0
  63. package/docs/Logger/variables/Logger.md +15 -0
  64. package/docs/LoggingUtils/README.md +19 -0
  65. package/docs/LoggingUtils/functions/createHandlerListener.md +42 -0
  66. package/docs/LoggingUtils/functions/logForward.md +36 -0
  67. package/docs/LoggingUtils/functions/logIncoming.md +30 -0
  68. package/docs/LoggingUtils/functions/logOutgoing.md +30 -0
  69. package/docs/LoggingUtils/interfaces/IMessageLogger.md +29 -0
  70. package/docs/LoggingUtils/interfaces/IProtoLogObj.md +57 -0
  71. package/docs/PlayerConnection/README.md +11 -0
  72. package/docs/PlayerConnection/classes/PlayerConnection.md +177 -0
  73. package/docs/PlayerRegistry/README.md +16 -0
  74. package/docs/PlayerRegistry/classes/PlayerRegistry.md +423 -0
  75. package/docs/PlayerRegistry/interfaces/IPlayer.md +86 -0
  76. package/docs/PlayerRegistry/interfaces/IPlayerInfo.md +43 -0
  77. package/docs/README.md +19 -0
  78. package/docs/SFUConnection/README.md +11 -0
  79. package/docs/SFUConnection/classes/SFUConnection.md +554 -0
  80. package/docs/SignallingServer/README.md +19 -0
  81. package/docs/SignallingServer/classes/SignallingServer.md +76 -0
  82. package/docs/SignallingServer/interfaces/IServerConfig.md +92 -0
  83. package/docs/SignallingServer/type-aliases/ProtocolConfig.md +15 -0
  84. package/docs/StreamerConnection/README.md +11 -0
  85. package/docs/StreamerConnection/classes/StreamerConnection.md +507 -0
  86. package/docs/StreamerRegistry/README.md +16 -0
  87. package/docs/StreamerRegistry/classes/StreamerRegistry.md +431 -0
  88. package/docs/StreamerRegistry/interfaces/IStreamer.md +375 -0
  89. package/docs/StreamerRegistry/interfaces/IStreamerInfo.md +51 -0
  90. package/docs/Utils/README.md +12 -0
  91. package/docs/Utils/functions/beautify.md +23 -0
  92. package/docs/Utils/functions/stringify.md +23 -0
  93. package/docs/WebServer/README.md +15 -0
  94. package/docs/WebServer/classes/WebServer.md +50 -0
  95. package/docs/WebServer/interfaces/IWebServerConfig.md +76 -0
  96. package/docs/pixelstreamingsignalling/README.md +145 -0
  97. package/eslint.config.mjs +39 -0
  98. package/package.json +58 -0
  99. package/src/Logger.ts +189 -0
  100. package/src/LoggingUtils.ts +80 -0
  101. package/src/PlayerConnection.ts +257 -0
  102. package/src/PlayerRegistry.ts +116 -0
  103. package/src/SFUConnection.ts +329 -0
  104. package/src/SignallingServer.ts +214 -0
  105. package/src/StreamerConnection.ts +194 -0
  106. package/src/StreamerRegistry.ts +252 -0
  107. package/src/Utils.ts +16 -0
  108. package/src/WebServer.ts +213 -0
  109. package/src/pixelstreamingsignalling.ts +11 -0
  110. package/tsconfig.cjs.json +8 -0
  111. package/tsconfig.esm.json +8 -0
  112. package/tsconfig.json +29 -0
@@ -0,0 +1,431 @@
1
+ [**@epicgames-ps/lib-pixelstreamingsignalling-ue5.5**](../../README.md)
2
+
3
+ ***
4
+
5
+ [@epicgames-ps/lib-pixelstreamingsignalling-ue5.5](../../README.md) / [StreamerRegistry](../README.md) / StreamerRegistry
6
+
7
+ # Class: StreamerRegistry
8
+
9
+ Defined in: [Signalling/src/StreamerRegistry.ts:48](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L48)
10
+
11
+ Handles all the streamer connections of a signalling server and
12
+ can be used to lookup connections by id etc.
13
+ Fires events when streamers are added or removed.
14
+ Events:
15
+ 'added': (playerId: string) Player was added.
16
+ 'removed': (playerId: string) Player was removed.
17
+
18
+ ## Extends
19
+
20
+ - `EventEmitter`
21
+
22
+ ## Constructors
23
+
24
+ ### new StreamerRegistry()
25
+
26
+ > **new StreamerRegistry**(): [`StreamerRegistry`](StreamerRegistry.md)
27
+
28
+ Defined in: [Signalling/src/StreamerRegistry.ts:52](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L52)
29
+
30
+ #### Returns
31
+
32
+ [`StreamerRegistry`](StreamerRegistry.md)
33
+
34
+ #### Overrides
35
+
36
+ `EventEmitter.constructor`
37
+
38
+ ## Properties
39
+
40
+ ### defaultStreamerIdPrefix
41
+
42
+ > **defaultStreamerIdPrefix**: `string` = `'UnknownStreamer'`
43
+
44
+ Defined in: [Signalling/src/StreamerRegistry.ts:50](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L50)
45
+
46
+ ***
47
+
48
+ ### streamers
49
+
50
+ > **streamers**: [`IStreamer`](../interfaces/IStreamer.md)[]
51
+
52
+ Defined in: [Signalling/src/StreamerRegistry.ts:49](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L49)
53
+
54
+ ## Methods
55
+
56
+ ### add()
57
+
58
+ > **add**(`streamer`): `boolean`
59
+
60
+ Defined in: [Signalling/src/StreamerRegistry.ts:64](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L64)
61
+
62
+ Adds a streamer to the registry. If the streamer already has an id
63
+ it will be sanitized (checked against existing ids and altered if
64
+ there are collisions), or if it has no id it will be assigned a
65
+ default unique id.
66
+
67
+ #### Parameters
68
+
69
+ ##### streamer
70
+
71
+ [`IStreamer`](../interfaces/IStreamer.md)
72
+
73
+ #### Returns
74
+
75
+ `boolean`
76
+
77
+ True if the add was successful.
78
+
79
+ ***
80
+
81
+ ### addListener()
82
+
83
+ > **addListener**(`eventName`, `listener`): `this`
84
+
85
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:39
86
+
87
+ Alias for `emitter.on(eventName, listener)`.
88
+
89
+ #### Parameters
90
+
91
+ ##### eventName
92
+
93
+ `string`
94
+
95
+ ##### listener
96
+
97
+ (...`args`) => `void`
98
+
99
+ #### Returns
100
+
101
+ `this`
102
+
103
+ #### Inherited from
104
+
105
+ `EventEmitter.addListener`
106
+
107
+ ***
108
+
109
+ ### count()
110
+
111
+ > **count**(): `number`
112
+
113
+ Defined in: [Signalling/src/StreamerRegistry.ts:133](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L133)
114
+
115
+ Returns the total number of connected streamers.
116
+
117
+ #### Returns
118
+
119
+ `number`
120
+
121
+ ***
122
+
123
+ ### emit()
124
+
125
+ > **emit**(`eventName`, ...`args`): `boolean`
126
+
127
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:133
128
+
129
+ Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments
130
+ to each.
131
+
132
+ Returns `true` if the event had listeners, `false` otherwise.
133
+
134
+ ```js
135
+ import { EventEmitter } from 'node:events';
136
+ const myEmitter = new EventEmitter();
137
+
138
+ // First listener
139
+ myEmitter.on('event', function firstListener() {
140
+ console.log('Helloooo! first listener');
141
+ });
142
+ // Second listener
143
+ myEmitter.on('event', function secondListener(arg1, arg2) {
144
+ console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
145
+ });
146
+ // Third listener
147
+ myEmitter.on('event', function thirdListener(...args) {
148
+ const parameters = args.join(', ');
149
+ console.log(`event with parameters ${parameters} in third listener`);
150
+ });
151
+
152
+ console.log(myEmitter.listeners('event'));
153
+
154
+ myEmitter.emit('event', 1, 2, 3, 4, 5);
155
+
156
+ // Prints:
157
+ // [
158
+ // [Function: firstListener],
159
+ // [Function: secondListener],
160
+ // [Function: thirdListener]
161
+ // ]
162
+ // Helloooo! first listener
163
+ // event with parameters 1, 2 in second listener
164
+ // event with parameters 1, 2, 3, 4, 5 in third listener
165
+ ```
166
+
167
+ #### Parameters
168
+
169
+ ##### eventName
170
+
171
+ `string`
172
+
173
+ ##### args
174
+
175
+ ...`any`[]
176
+
177
+ #### Returns
178
+
179
+ `boolean`
180
+
181
+ #### Inherited from
182
+
183
+ `EventEmitter.emit`
184
+
185
+ ***
186
+
187
+ ### empty()
188
+
189
+ > **empty**(): `boolean`
190
+
191
+ Defined in: [Signalling/src/StreamerRegistry.ts:126](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L126)
192
+
193
+ Returns true when the registry is empty.
194
+
195
+ #### Returns
196
+
197
+ `boolean`
198
+
199
+ ***
200
+
201
+ ### find()
202
+
203
+ > **find**(`streamerId`): `undefined` \| [`IStreamer`](../interfaces/IStreamer.md)
204
+
205
+ Defined in: [Signalling/src/StreamerRegistry.ts:106](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L106)
206
+
207
+ Attempts to find the given streamer id in the registry.
208
+
209
+ #### Parameters
210
+
211
+ ##### streamerId
212
+
213
+ `string`
214
+
215
+ #### Returns
216
+
217
+ `undefined` \| [`IStreamer`](../interfaces/IStreamer.md)
218
+
219
+ ***
220
+
221
+ ### getFirstStreamerId()
222
+
223
+ > **getFirstStreamerId**(): `null` \| `string`
224
+
225
+ Defined in: [Signalling/src/StreamerRegistry.ts:116](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L116)
226
+
227
+ Used by players who haven't subscribed but try to send a message.
228
+ This is to cover legacy connections that do not know how to subscribe.
229
+ The player will be assigned the first streamer in the list.
230
+
231
+ #### Returns
232
+
233
+ `null` \| `string`
234
+
235
+ The first streamerId in the registry or null if there are none.
236
+
237
+ ***
238
+
239
+ ### off()
240
+
241
+ > **off**(`eventName`, `listener`): `this`
242
+
243
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:88
244
+
245
+ Alias for `emitter.removeListener()`.
246
+
247
+ #### Parameters
248
+
249
+ ##### eventName
250
+
251
+ `string`
252
+
253
+ ##### listener
254
+
255
+ (...`args`) => `void`
256
+
257
+ #### Returns
258
+
259
+ `this`
260
+
261
+ #### Inherited from
262
+
263
+ `EventEmitter.off`
264
+
265
+ ***
266
+
267
+ ### on()
268
+
269
+ > **on**(`eventName`, `listener`): `this`
270
+
271
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:55
272
+
273
+ Adds the `listener` function to the end of the listeners array for the event
274
+ named `eventName`.
275
+
276
+ ```js
277
+ server.on('connection', (stream) => {
278
+ console.log('someone connected!');
279
+ });
280
+ ```
281
+
282
+ Returns a reference to the `EventEmitter`, so that calls can be chained.
283
+
284
+ #### Parameters
285
+
286
+ ##### eventName
287
+
288
+ `string`
289
+
290
+ The name of the event.
291
+
292
+ ##### listener
293
+
294
+ (...`args`) => `void`
295
+
296
+ The callback function
297
+
298
+ #### Returns
299
+
300
+ `this`
301
+
302
+ #### Inherited from
303
+
304
+ `EventEmitter.on`
305
+
306
+ ***
307
+
308
+ ### once()
309
+
310
+ > **once**(`eventName`, `listener`): `this`
311
+
312
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:70
313
+
314
+ Adds a **one-time** `listener` function for the event named `eventName`. The
315
+ next time `eventName` is triggered, this listener is removed and then invoked.
316
+
317
+ ```js
318
+ server.once('connection', (stream) => {
319
+ console.log('Ah, we have our first user!');
320
+ });
321
+ ```
322
+
323
+ Returns a reference to the `EventEmitter`, so that calls can be chained.
324
+
325
+ #### Parameters
326
+
327
+ ##### eventName
328
+
329
+ `string`
330
+
331
+ The name of the event.
332
+
333
+ ##### listener
334
+
335
+ (...`args`) => `void`
336
+
337
+ The callback function
338
+
339
+ #### Returns
340
+
341
+ `this`
342
+
343
+ #### Inherited from
344
+
345
+ `EventEmitter.once`
346
+
347
+ ***
348
+
349
+ ### remove()
350
+
351
+ > **remove**(`streamer`): `boolean`
352
+
353
+ Defined in: [Signalling/src/StreamerRegistry.ts:90](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/4dc9339cfc185a91d37d078aa9dd0951dfbae1a5/Signalling/src/StreamerRegistry.ts#L90)
354
+
355
+ Removes a streamer from the registry. If the streamer isn't found
356
+ it does nothing.
357
+
358
+ #### Parameters
359
+
360
+ ##### streamer
361
+
362
+ [`IStreamer`](../interfaces/IStreamer.md)
363
+
364
+ #### Returns
365
+
366
+ `boolean`
367
+
368
+ True if the streamer was removed.
369
+
370
+ ***
371
+
372
+ ### removeAllListeners()
373
+
374
+ > **removeAllListeners**(`eventName`): `this`
375
+
376
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:93
377
+
378
+ Removes all listeners, or those of the specified `eventName`.
379
+ Returns a reference to the `EventEmitter`, so that calls can be chained.
380
+
381
+ #### Parameters
382
+
383
+ ##### eventName
384
+
385
+ `string`
386
+
387
+ #### Returns
388
+
389
+ `this`
390
+
391
+ #### Inherited from
392
+
393
+ `EventEmitter.removeAllListeners`
394
+
395
+ ***
396
+
397
+ ### removeListener()
398
+
399
+ > **removeListener**(`eventName`, `listener`): `this`
400
+
401
+ Defined in: Common/dist/types/Event/EventEmitter.d.ts:84
402
+
403
+ Removes the specified `listener` from this EventEmitter.
404
+
405
+ ```js
406
+ const callback = (stream) => {
407
+ console.log('someone connected!');
408
+ };
409
+ server.on('connection', callback);
410
+ // ...
411
+ server.removeListener('connection', callback);
412
+ ```
413
+ Returns a reference to the `EventEmitter`, so that calls can be chained.
414
+
415
+ #### Parameters
416
+
417
+ ##### eventName
418
+
419
+ `string`
420
+
421
+ ##### listener
422
+
423
+ (...`args`) => `void`
424
+
425
+ #### Returns
426
+
427
+ `this`
428
+
429
+ #### Inherited from
430
+
431
+ `EventEmitter.removeListener`