@vworlds/dgram-server 1.0.6 → 1.0.8
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/dgram-server/src/server/server-socket.js +10 -3
- package/dgram-server/src/server/server-socket.js.map +1 -1
- package/dgram-server/src/webrtc/datachannel/connections-manager.d.ts +5 -1
- package/dgram-server/src/webrtc/datachannel/connections-manager.js +7 -11
- package/dgram-server/src/webrtc/datachannel/connections-manager.js.map +1 -1
- package/dgram-server/src/webrtc/datachannel/webrtc-connection.js +5 -2
- package/dgram-server/src/webrtc/datachannel/webrtc-connection.js.map +1 -1
- package/node_modules/@vworlds/dgram-common/package.json +11 -0
- package/node_modules/@vworlds/dgram-common/src/constants.d.ts +18 -0
- package/node_modules/@vworlds/dgram-common/src/constants.js +19 -0
- package/node_modules/@vworlds/dgram-common/src/constants.js.map +1 -0
- package/node_modules/@vworlds/dgram-common/src/index.d.ts +3 -0
- package/node_modules/@vworlds/dgram-common/src/index.js +3 -0
- package/node_modules/@vworlds/dgram-common/src/index.js.map +1 -0
- package/node_modules/@vworlds/dgram-common/src/socket.d.ts +27 -0
- package/node_modules/@vworlds/dgram-common/src/socket.js +5 -0
- package/node_modules/@vworlds/dgram-common/src/socket.js.map +1 -0
- package/package.json +5 -2
|
@@ -10,15 +10,22 @@ export class ServerSocket extends Socket {
|
|
|
10
10
|
constructor(connection) {
|
|
11
11
|
super();
|
|
12
12
|
this.connection = connection;
|
|
13
|
+
let disconnected = false;
|
|
14
|
+
const emitDisconnect = () => {
|
|
15
|
+
if (disconnected) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
disconnected = true;
|
|
19
|
+
this.emit('disconnect');
|
|
20
|
+
};
|
|
13
21
|
this.connection.on(EVENTS.DATA_CHANNEL_IS_OPEN, (err) => {
|
|
14
22
|
this.emit('connect', err);
|
|
15
23
|
});
|
|
16
24
|
this.connection.on(EVENTS.MESSAGE, (data) => {
|
|
17
25
|
this.emit('receive', data);
|
|
18
26
|
});
|
|
19
|
-
this.connection.on(EVENTS.DISCONNECTED,
|
|
20
|
-
|
|
21
|
-
});
|
|
27
|
+
this.connection.on(EVENTS.DISCONNECTED, emitDisconnect);
|
|
28
|
+
this.connection.on(EVENTS.ERROR, emitDisconnect);
|
|
22
29
|
}
|
|
23
30
|
/** Connection id assigned by the server connection manager. */
|
|
24
31
|
get id() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-socket.js","sourceRoot":"","sources":["../../../../src/server/server-socket.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EACN,MAAM,GACP,MAAM,oCAAoC,CAAC;AAE5C,gEAAgE;AAChE,MAAM,OAAO,YAAa,SAAQ,MAAM;IAMnB;IALnB;;;;OAIG;IACH,YAAmB,UAA4B;QAC7C,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAkB;QAG7C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,GAAoB,EAAE,EAAE;YACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAgB,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"server-socket.js","sourceRoot":"","sources":["../../../../src/server/server-socket.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EACN,MAAM,GACP,MAAM,oCAAoC,CAAC;AAE5C,gEAAgE;AAChE,MAAM,OAAO,YAAa,SAAQ,MAAM;IAMnB;IALnB;;;;OAIG;IACH,YAAmB,UAA4B;QAC7C,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAkB;QAG7C,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,GAAoB,EAAE,EAAE;YACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAgB,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,+DAA+D;IAC/D,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,IAAgB;QACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,+DAA+D;IAC/D,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -8,7 +8,11 @@ export default class ConnectionsManager extends EventEmitter {
|
|
|
8
8
|
private connections;
|
|
9
9
|
/** @param options WebRTC and data channel settings applied to new connections. */
|
|
10
10
|
constructor(options: ServerOptions);
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Creates a cryptographically strong connection id used by signaling
|
|
13
|
+
* routes. The id is the only credential controlling per-connection
|
|
14
|
+
* signaling endpoints, so it must be unguessable.
|
|
15
|
+
*/
|
|
12
16
|
private createId;
|
|
13
17
|
/** Looks up an active server connection by id. */
|
|
14
18
|
getConnection(id: string): WebRTCConnection | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ReliabilityType, } from '../../server/server-options.js';
|
|
2
2
|
import WebRTCConnection from './webrtc-connection.js';
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
4
5
|
import { EVENTS } from '@vworlds/dgram-common';
|
|
5
6
|
/** Creates, stores, and deletes server-side WebRTC connections. */
|
|
6
7
|
export default class ConnectionsManager extends EventEmitter {
|
|
@@ -12,14 +13,13 @@ export default class ConnectionsManager extends EventEmitter {
|
|
|
12
13
|
super();
|
|
13
14
|
this.options = options;
|
|
14
15
|
}
|
|
15
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Creates a cryptographically strong connection id used by signaling
|
|
18
|
+
* routes. The id is the only credential controlling per-connection
|
|
19
|
+
* signaling endpoints, so it must be unguessable.
|
|
20
|
+
*/
|
|
16
21
|
createId() {
|
|
17
|
-
|
|
18
|
-
let id = '';
|
|
19
|
-
for (let i = 0; i < 24; i++) {
|
|
20
|
-
id += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
21
|
-
}
|
|
22
|
-
return id;
|
|
22
|
+
return randomUUID();
|
|
23
23
|
}
|
|
24
24
|
/** Looks up an active server connection by id. */
|
|
25
25
|
getConnection(id) {
|
|
@@ -62,9 +62,6 @@ export default class ConnectionsManager extends EventEmitter {
|
|
|
62
62
|
reject(undefined);
|
|
63
63
|
}
|
|
64
64
|
this.connections.set(connection.id, connection);
|
|
65
|
-
pc.onDataChannel((dc) => {
|
|
66
|
-
// do nothing
|
|
67
|
-
});
|
|
68
65
|
pc.onStateChange(async (state) => {
|
|
69
66
|
if (state === 'disconnected' ||
|
|
70
67
|
state === 'failed' ||
|
|
@@ -73,7 +70,6 @@ export default class ConnectionsManager extends EventEmitter {
|
|
|
73
70
|
}
|
|
74
71
|
connection.setState(state);
|
|
75
72
|
});
|
|
76
|
-
pc.onGatheringStateChange((state) => { });
|
|
77
73
|
pc.onLocalDescription((sdp, type) => {
|
|
78
74
|
connection.localDescription = { sdp, type };
|
|
79
75
|
resolve(connection);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections-manager.js","sourceRoot":"","sources":["../../../../../src/webrtc/datachannel/connections-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,mEAAmE;AACnE,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;IAKvC;IAJnB,oEAAoE;IAC5D,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D,kFAAkF;IAClF,YAAmB,OAAsB;QACvC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAe;IAEzC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"connections-manager.js","sourceRoot":"","sources":["../../../../../src/webrtc/datachannel/connections-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,mEAAmE;AACnE,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;IAKvC;IAJnB,oEAAoE;IAC5D,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D,kFAAkF;IAClF,YAAmB,OAAsB;QACvC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAe;IAEzC,CAAC;IAED;;;;OAIG;IACK,QAAQ;QACd,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,kDAAkD;IAC3C,aAAa,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,eAAe,GAAG,eAAe,CAAC,MAAM,EACxC,eAAe,EACf,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,EAAE,EACf,SAAS,EACT,kBAAkB,GAAG,KAAK,EAC1B,iBAAiB,GAAG,SAAS,EAC7B,cAAc,GAAG,CAAC,GACnB,GAAG,IAAI,CAAC,OAAO,CAAC;YAEjB,MAAM,QAAQ,GAAG;gBACf,SAAS,EAAE,CAAC,OAAO;aACK,CAAC;YAE3B,IACE,eAAe,KAAK,eAAe,CAAC,KAAK;gBACzC,iBAAiB,KAAK,SAAS,EAC/B,CAAC;gBACD,QAAQ,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YACjD,CAAC;iBAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;YAC3C,CAAC;YAED,2BAA2B;YAC3B,IAAI,SAAS,GAAc;gBACzB,kBAAkB,EAAE,kBAAqC;gBACzD,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAc,CAAC;aACxD,CAAC;YACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,SAAS,CAAC,eAAe,GAAG,eAAe,CAAC;YAC9C,CAAC;YAED,iCAAiC;YACjC,IAAI,SAAS,EAAE,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC;gBACrC,SAAS,GAAG;oBACV,GAAG,SAAS;oBACZ,cAAc,EAAE,SAAS,CAAC,GAAG;oBAC7B,YAAY,EAAE,SAAS,CAAC,GAAG;iBAC5B,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,gBAAgB,CACrC,KAAK,EACL,SAAS,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAEhD,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/B,IACE,KAAK,KAAK,cAAc;oBACxB,KAAK,KAAK,QAAQ;oBAClB,KAAK,KAAK,QAAQ,EAClB,CAAC;oBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAC1C,CAAC;gBAED,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAClC,UAAU,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC5C,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;gBACrC,aAAa;gBACb,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAEnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,gBAAgB,CAAC,UAA4B;QACjD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -41,9 +41,12 @@ export default class WebRTCConnection extends EventEmitter {
|
|
|
41
41
|
this.emit(EVENTS.CONNECT);
|
|
42
42
|
}
|
|
43
43
|
else if (state === 'failed') {
|
|
44
|
-
this.
|
|
44
|
+
if (this.listenerCount(EVENTS.ERROR) > 0) {
|
|
45
|
+
this.emit(EVENTS.ERROR);
|
|
46
|
+
}
|
|
47
|
+
this.emit(EVENTS.DISCONNECTED);
|
|
45
48
|
}
|
|
46
|
-
else if (state === 'closed') {
|
|
49
|
+
else if (state === 'disconnected' || state === 'closed') {
|
|
47
50
|
this.emit(EVENTS.DISCONNECTED);
|
|
48
51
|
}
|
|
49
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webrtc-connection.js","sourceRoot":"","sources":["../../../../../src/webrtc/datachannel/webrtc-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAUvD,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY;IAsB/C;IACA;IACA;IAvBT,2CAA2C;IACpC,KAAK,CAAS;IAErB,wDAAwD;IACjD,cAAc,CAA8B;IACnD,4DAA4D;IACrD,WAAW,CAA2B;IAC7C,0EAA0E;IACnE,gBAAgB,CAAmB;IAE1C,+EAA+E;IACxE,aAAa,GAAsB,EAAE,CAAC;IAE7C;;;;;;OAMG;IACH,YACS,EAAU,EACV,MAAiB,EACjB,WAA0C;QAEjD,KAAK,EAAE,CAAC;QAJD,OAAE,GAAF,EAAE,CAAQ;QACV,WAAM,GAAN,MAAM,CAAW;QACjB,gBAAW,GAAX,WAAW,CAA+B;QAGjD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,gFAAgF;IACzE,QAAQ,CAAC,KAAa;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"webrtc-connection.js","sourceRoot":"","sources":["../../../../../src/webrtc/datachannel/webrtc-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const EVENTS: {
|
|
2
|
+
CONNECT: string;
|
|
3
|
+
CONNECTION: string;
|
|
4
|
+
DATA_CHANNEL_IS_OPEN: string;
|
|
5
|
+
DISCONNECTED: string;
|
|
6
|
+
ERROR: string;
|
|
7
|
+
MESSAGE: string;
|
|
8
|
+
};
|
|
9
|
+
declare const ERRORS: {
|
|
10
|
+
BROWSER_NOT_SUPPORTED: string;
|
|
11
|
+
COULD_NOT_PARSE_MESSAGE: string;
|
|
12
|
+
DROPPED_FROM_BUFFERING: string;
|
|
13
|
+
MAX_MESSAGE_SIZE_EXCEEDED: string;
|
|
14
|
+
PEER_CONNECTION_NOT_CREATED: string;
|
|
15
|
+
DATA_CHANNEL_NOT_CREATED: string;
|
|
16
|
+
CONNECTION_CLOSED: string;
|
|
17
|
+
};
|
|
18
|
+
export { EVENTS, ERRORS };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const EVENTS = {
|
|
2
|
+
CONNECT: 'connect',
|
|
3
|
+
CONNECTION: 'connection',
|
|
4
|
+
DATA_CHANNEL_IS_OPEN: 'dataChannelIsOpen',
|
|
5
|
+
DISCONNECTED: 'disconnected',
|
|
6
|
+
ERROR: 'error',
|
|
7
|
+
MESSAGE: 'rawMessage',
|
|
8
|
+
};
|
|
9
|
+
const ERRORS = {
|
|
10
|
+
BROWSER_NOT_SUPPORTED: 'BROWSER_NOT_SUPPORTED',
|
|
11
|
+
COULD_NOT_PARSE_MESSAGE: 'COULD_NOT_PARSE_MESSAGE',
|
|
12
|
+
DROPPED_FROM_BUFFERING: 'DROPPED_FROM_BUFFERING',
|
|
13
|
+
MAX_MESSAGE_SIZE_EXCEEDED: 'MAX_MESSAGE_SIZE_EXCEEDED',
|
|
14
|
+
PEER_CONNECTION_NOT_CREATED: 'PEER_CONNECTION_NOT_CREATED',
|
|
15
|
+
DATA_CHANNEL_NOT_CREATED: 'DATA_CHANNEL_NOT_CREATED',
|
|
16
|
+
CONNECTION_CLOSED: 'CONNECTION_CLOSED',
|
|
17
|
+
};
|
|
18
|
+
export { EVENTS, ERRORS };
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../dgram-common/src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,oBAAoB,EAAE,mBAAmB;IACzC,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAChD,yBAAyB,EAAE,2BAA2B;IACtD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;IACpD,iBAAiB,EAAE,mBAAmB;CACvC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dgram-common/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
/** Describes a connection failure reported through the socket `connect` event. */
|
|
3
|
+
export interface ConnectionError extends Error {
|
|
4
|
+
/** Numeric status code for the failure. Browser support failures use `-1`. */
|
|
5
|
+
status: number;
|
|
6
|
+
/** Human-readable status text suitable for logs or UI. */
|
|
7
|
+
statusText: string;
|
|
8
|
+
}
|
|
9
|
+
/** Events emitted by dgram socket implementations. */
|
|
10
|
+
interface SocketEvents {
|
|
11
|
+
/** Fired after the peer connection or data channel closes. */
|
|
12
|
+
disconnect: () => void;
|
|
13
|
+
/** Fired when binary payload data arrives from the remote peer. */
|
|
14
|
+
receive: (data: Uint8Array) => void;
|
|
15
|
+
/** Fired when the socket connects, or with an error when setup fails. */
|
|
16
|
+
connect: (err?: ConnectionError) => void;
|
|
17
|
+
}
|
|
18
|
+
/** Common socket-shaped interface implemented by browser and server dgram sockets. */
|
|
19
|
+
export declare abstract class Socket extends EventEmitter<SocketEvents> {
|
|
20
|
+
/** Stable connection id assigned by the signaling server. */
|
|
21
|
+
abstract get id(): string;
|
|
22
|
+
/** Sends one binary datagram-like payload over the underlying WebRTC data channel. */
|
|
23
|
+
abstract send(data: Uint8Array): void;
|
|
24
|
+
/** Closes the underlying WebRTC connection and releases resources. */
|
|
25
|
+
abstract close(): void;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../dgram-common/src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAoB7C,sFAAsF;AACtF,MAAM,OAAgB,MAAO,SAAQ,YAA0B;CAO9D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vworlds/dgram-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dgram-server/src/index.js",
|
|
6
6
|
"types": "./dgram-server/src/index.d.ts",
|
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
"url": "https://github.com/vworlds/dgram"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@vworlds/dgram-common": "
|
|
18
|
+
"@vworlds/dgram-common": "1.0.8",
|
|
19
19
|
"eventemitter3": "^5.0.4",
|
|
20
20
|
"express": "^4.18.2",
|
|
21
21
|
"node-datachannel": "^0.32.3"
|
|
22
22
|
},
|
|
23
|
+
"bundledDependencies": [
|
|
24
|
+
"@vworlds/dgram-common"
|
|
25
|
+
],
|
|
23
26
|
"license": "UNLICENSED"
|
|
24
27
|
}
|