@hydranium/core 1.0.0-next.85 → 1.0.0-next.88
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/lib/langium/service-registry.d.ts +5 -1
- package/lib/langium/service-registry.d.ts.map +1 -1
- package/lib/langium/service-registry.js +4 -0
- package/lib/langium/service-registry.js.map +1 -1
- package/lib/node/socket-launcher.d.ts +15 -0
- package/lib/node/socket-launcher.d.ts.map +1 -1
- package/lib/node/socket-launcher.js +3 -2
- package/lib/node/socket-launcher.js.map +1 -1
- package/package.json +5 -5
- package/src/langium/service-registry.ts +6 -2
- package/src/node/socket-launcher.ts +18 -2
|
@@ -170,8 +170,12 @@ export declare class ExtendedServiceRegistry<TServices extends LangiumCoreServic
|
|
|
170
170
|
* inherited Langium semantics, which throws on miss). Used for
|
|
171
171
|
* dynamically-routed lookups where the language id comes from
|
|
172
172
|
* external input.
|
|
173
|
+
*
|
|
174
|
+
* The cast is sound because {@link register} is the only way a language
|
|
175
|
+
* enters and takes `TServices`; `languageIdMap` is inherited and typed to
|
|
176
|
+
* Langium's base, which is the only reason one is needed.
|
|
173
177
|
*/
|
|
174
|
-
getServicesById(languageId: string):
|
|
178
|
+
getServicesById(languageId: string): TServices | undefined;
|
|
175
179
|
/**
|
|
176
180
|
* Lookup by file extension. Returns `undefined` when no services match.
|
|
177
181
|
* Useful for routing decisions that need to dispatch on file extension
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EAEZ,sBAAsB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,GAAG,EACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBAAa,wBAAwB,CAAC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,sBAAsB;IAC9H;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAErD,+CAA+C;IAC/C,SAAS,CAAC,cAAc,SAAK;IAE7B;;;;;;;;OAQG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAEW,QAAQ,CAAC,EAAE,yBAAyB;IAgBhD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAItD,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAK5C;;;;;;;;;;;;;;;;;;OAkBG;IACM,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS;CAa3C;AAED,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB,CAAC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,gBAAgB;IACzH,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAEjI;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,uBAAuB,CACjC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAC5D,SAAQ,wBAAwB,CAAC,SAAS,CAAC;IAEjC,WAAW,CAAC,aAAa,SAAS,mBAAmB,EAC3D,QAAQ,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAC9C,aAAa,GAAG,SAAS;IAEnB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS;IAQzC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;IAYzE
|
|
1
|
+
{"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EAEZ,sBAAsB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,GAAG,EACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBAAa,wBAAwB,CAAC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,sBAAsB;IAC9H;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAErD,+CAA+C;IAC/C,SAAS,CAAC,cAAc,SAAK;IAE7B;;;;;;;;OAQG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAEW,QAAQ,CAAC,EAAE,yBAAyB;IAgBhD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAItD,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAK5C;;;;;;;;;;;;;;;;;;OAkBG;IACM,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS;CAa3C;AAED,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB,CAAC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,gBAAgB;IACzH,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAEjI;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,uBAAuB,CACjC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,CAC5D,SAAQ,wBAAwB,CAAC,SAAS,CAAC;IAEjC,WAAW,CAAC,aAAa,SAAS,mBAAmB,EAC3D,QAAQ,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAC9C,aAAa,GAAG,SAAS;IAEnB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS;IAQzC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;IAYzE;;;;;;;;;;OAUG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1D;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI1E;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE;IAIrD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAKvD;;;;;OAKG;IACM,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAK5C,SAAS,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEpD;;;;OAIG;IACH,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAEtD;CACH"}
|
|
@@ -195,6 +195,10 @@ export class ExtendedServiceRegistry extends HydraniumServiceRegistry {
|
|
|
195
195
|
* inherited Langium semantics, which throws on miss). Used for
|
|
196
196
|
* dynamically-routed lookups where the language id comes from
|
|
197
197
|
* external input.
|
|
198
|
+
*
|
|
199
|
+
* The cast is sound because {@link register} is the only way a language
|
|
200
|
+
* enters and takes `TServices`; `languageIdMap` is inherited and typed to
|
|
201
|
+
* Langium's base, which is the only reason one is needed.
|
|
198
202
|
*/
|
|
199
203
|
getServicesById(languageId) {
|
|
200
204
|
return this.languageIdMap.get(languageId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,21 @@ export interface SocketServerOptions {
|
|
|
19
19
|
* resolves (only then is the address info available).
|
|
20
20
|
*/
|
|
21
21
|
readonly port?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Interface to bind. Default `'127.0.0.1'` (LOCAL ONLY) — a head whose
|
|
24
|
+
* port is OS-assigned and announced over the LSP connection is
|
|
25
|
+
* reachable only by a client on the same machine anyway, so a wider
|
|
26
|
+
* binding exposes a port nothing off-box can address. Matches
|
|
27
|
+
* `startGlspServer`'s default, so the two socket heads agree.
|
|
28
|
+
*
|
|
29
|
+
* Pass `'::'` for every interface: that is the dual-stack any-address,
|
|
30
|
+
* so both IPv4 and IPv6 clients connect. `'0.0.0.0'` is NOT the same —
|
|
31
|
+
* it takes IPv4 only and refuses `::1`.
|
|
32
|
+
*
|
|
33
|
+
* An address no local interface holds fails the bind, so `started`
|
|
34
|
+
* rejects with `EADDRNOTAVAIL` rather than falling back to a wider one.
|
|
35
|
+
*/
|
|
36
|
+
readonly host?: string;
|
|
22
37
|
/**
|
|
23
38
|
* Optional logger. If omitted, the launcher runs silently — the
|
|
24
39
|
* adopter is expected to surface lifecycle events through their own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-launcher.d.ts","sourceRoot":"","sources":["../../src/node/socket-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,UAAU,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"socket-launcher.d.ts","sourceRoot":"","sources":["../../src/node/socket-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,UAAU,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,mBAAmB,CA2F3H;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAC/B,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,UAAU,CAAC;CACtG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAKlI"}
|
|
@@ -28,6 +28,7 @@ import { createMessageConnection, SocketMessageReader, SocketMessageWriter } fro
|
|
|
28
28
|
*/
|
|
29
29
|
export function startSocketServer(options, onClientConnection) {
|
|
30
30
|
const port = options.port ?? 0;
|
|
31
|
+
const host = options.host ?? '127.0.0.1';
|
|
31
32
|
const logger = options.logger;
|
|
32
33
|
const tag = options.logTag ?? 'SocketServer';
|
|
33
34
|
const started = new Deferred();
|
|
@@ -66,7 +67,7 @@ export function startSocketServer(options, onClientConnection) {
|
|
|
66
67
|
connection.onClose(() => dispose());
|
|
67
68
|
connection.listen();
|
|
68
69
|
});
|
|
69
|
-
netServer.listen(port);
|
|
70
|
+
netServer.listen(port, host);
|
|
70
71
|
netServer.on('listening', () => {
|
|
71
72
|
const addressInfo = netServer.address();
|
|
72
73
|
if (!addressInfo) {
|
|
@@ -82,7 +83,7 @@ export function startSocketServer(options, onClientConnection) {
|
|
|
82
83
|
return;
|
|
83
84
|
}
|
|
84
85
|
handle.port = addressInfo.port;
|
|
85
|
-
logger?.info(`[${tag}] Ready to accept new client requests on port: ${addressInfo.port}`);
|
|
86
|
+
logger?.info(`[${tag}] Ready to accept new client requests on ${addressInfo.address} port: ${addressInfo.port}`);
|
|
86
87
|
started.resolve();
|
|
87
88
|
});
|
|
88
89
|
netServer.on('error', err => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-launcher.js","sourceRoot":"","sources":["../../src/node/socket-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-launcher.js","sourceRoot":"","sources":["../../src/node/socket-launcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hydranium/core",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.88",
|
|
4
4
|
"description": "Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, @hydranium/glsp-server).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hydranium",
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
"diff": "^5.2.0"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
|
-
"@hydranium/langium": "1.0.0-next.
|
|
108
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
107
|
+
"@hydranium/langium": "1.0.0-next.88",
|
|
108
|
+
"@hydranium/protocol": "1.0.0-next.88",
|
|
109
109
|
"@playwright/test": "^1.40.0",
|
|
110
110
|
"@types/diff": "^5.2.0",
|
|
111
111
|
"rimraf": "^5.0.0",
|
|
@@ -117,8 +117,8 @@
|
|
|
117
117
|
"vscode-languageserver-types": "^3.17.5"
|
|
118
118
|
},
|
|
119
119
|
"peerDependencies": {
|
|
120
|
-
"@hydranium/langium": "1.0.0-next.
|
|
121
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
120
|
+
"@hydranium/langium": "1.0.0-next.88",
|
|
121
|
+
"@hydranium/protocol": "1.0.0-next.88",
|
|
122
122
|
"@playwright/test": "^1.40.0",
|
|
123
123
|
"vscode-jsonrpc": "9.0.1",
|
|
124
124
|
"vscode-languageserver": "~10.0.1",
|
|
@@ -255,9 +255,13 @@ export class ExtendedServiceRegistry<
|
|
|
255
255
|
* inherited Langium semantics, which throws on miss). Used for
|
|
256
256
|
* dynamically-routed lookups where the language id comes from
|
|
257
257
|
* external input.
|
|
258
|
+
*
|
|
259
|
+
* The cast is sound because {@link register} is the only way a language
|
|
260
|
+
* enters and takes `TServices`; `languageIdMap` is inherited and typed to
|
|
261
|
+
* Langium's base, which is the only reason one is needed.
|
|
258
262
|
*/
|
|
259
|
-
getServicesById(languageId: string):
|
|
260
|
-
return this.languageIdMap.get(languageId);
|
|
263
|
+
getServicesById(languageId: string): TServices | undefined {
|
|
264
|
+
return this.languageIdMap.get(languageId) as TServices | undefined;
|
|
261
265
|
}
|
|
262
266
|
|
|
263
267
|
/**
|
|
@@ -24,6 +24,21 @@ export interface SocketServerOptions {
|
|
|
24
24
|
* resolves (only then is the address info available).
|
|
25
25
|
*/
|
|
26
26
|
readonly port?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Interface to bind. Default `'127.0.0.1'` (LOCAL ONLY) — a head whose
|
|
29
|
+
* port is OS-assigned and announced over the LSP connection is
|
|
30
|
+
* reachable only by a client on the same machine anyway, so a wider
|
|
31
|
+
* binding exposes a port nothing off-box can address. Matches
|
|
32
|
+
* `startGlspServer`'s default, so the two socket heads agree.
|
|
33
|
+
*
|
|
34
|
+
* Pass `'::'` for every interface: that is the dual-stack any-address,
|
|
35
|
+
* so both IPv4 and IPv6 clients connect. `'0.0.0.0'` is NOT the same —
|
|
36
|
+
* it takes IPv4 only and refuses `::1`.
|
|
37
|
+
*
|
|
38
|
+
* An address no local interface holds fails the bind, so `started`
|
|
39
|
+
* rejects with `EADDRNOTAVAIL` rather than falling back to a wider one.
|
|
40
|
+
*/
|
|
41
|
+
readonly host?: string;
|
|
27
42
|
/**
|
|
28
43
|
* Optional logger. If omitted, the launcher runs silently — the
|
|
29
44
|
* adopter is expected to surface lifecycle events through their own
|
|
@@ -88,6 +103,7 @@ export interface StartedSocketServer extends IntegratedServer {
|
|
|
88
103
|
*/
|
|
89
104
|
export function startSocketServer(options: SocketServerOptions, onClientConnection: OnClientConnection): StartedSocketServer {
|
|
90
105
|
const port = options.port ?? 0;
|
|
106
|
+
const host = options.host ?? '127.0.0.1';
|
|
91
107
|
const logger = options.logger;
|
|
92
108
|
const tag = options.logTag ?? 'SocketServer';
|
|
93
109
|
const started = new Deferred<void>();
|
|
@@ -128,7 +144,7 @@ export function startSocketServer(options: SocketServerOptions, onClientConnecti
|
|
|
128
144
|
connection.listen();
|
|
129
145
|
});
|
|
130
146
|
|
|
131
|
-
netServer.listen(port);
|
|
147
|
+
netServer.listen(port, host);
|
|
132
148
|
netServer.on('listening', () => {
|
|
133
149
|
const addressInfo = netServer.address();
|
|
134
150
|
if (!addressInfo) {
|
|
@@ -144,7 +160,7 @@ export function startSocketServer(options: SocketServerOptions, onClientConnecti
|
|
|
144
160
|
return;
|
|
145
161
|
}
|
|
146
162
|
handle.port = addressInfo.port;
|
|
147
|
-
logger?.info(`[${tag}] Ready to accept new client requests on port: ${addressInfo.port}`);
|
|
163
|
+
logger?.info(`[${tag}] Ready to accept new client requests on ${addressInfo.address} port: ${addressInfo.port}`);
|
|
148
164
|
started.resolve();
|
|
149
165
|
});
|
|
150
166
|
netServer.on('error', err => {
|