From c6c2e749bef5653a4c5ea16709046f09e40d2a03 Mon Sep 17 00:00:00 2001 From: ahmed Date: Wed, 23 Jul 2025 20:53:05 +0300 Subject: [PATCH] GetTypeUUID+wsUrl --- package.json | 2 +- src/Net/IIP/DistributedConnection.js | 19 +++++++++++-------- src/Net/Sockets/WSocket.js | 6 ++++-- src/Resource/Template/TypeTemplate.js | 2 +- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 4743c0d..8c5371e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "esiur", - "version": "2.3.3", + "version": "2.3.4", "description": "Distributed Object Framework", "main": "esiur.js", "type": "module", diff --git a/src/Net/IIP/DistributedConnection.js b/src/Net/IIP/DistributedConnection.js index 5a06fb2..da462c0 100644 --- a/src/Net/IIP/DistributedConnection.js +++ b/src/Net/IIP/DistributedConnection.js @@ -104,7 +104,6 @@ export default class DistributedConnection extends IStore { // fields #port; #hostname; - #secure; #socket; #lastKeepAliveSent; @@ -1347,7 +1346,8 @@ export default class DistributedConnection extends IStore { keepAliveInterval = 30, keepAliveTime = 10, reconnectInterval = 5, - authenticator = null} = this.instance.attributes.toObject(); + authenticator = null, + wsUrl = ""} = this.instance.attributes.toObject(); this.authenticator = authenticator; @@ -1369,16 +1369,16 @@ export default class DistributedConnection extends IStore { && password != null) { var pw = DC.stringToBytes(password); - return this.connect(AuthenticationMethod.Credentials, null, address, port, username, null, pw, domain, secure); + return this.connect(AuthenticationMethod.Credentials, null, address, port, username, null, pw, domain, secure, wsUrl); } else if (token != null) { var tk = token instanceof Uint8Array ? token : DC.stringToBytes(token); - return this.connect(AuthenticationMethod.Token, null, address, port, null, tokenIndex, tk, domain, secure); + return this.connect(AuthenticationMethod.Token, null, address, port, null, tokenIndex, tk, domain, secure, wsUrl); } else { - return this.connect(AuthenticationMethod.None, null, address, port, null, 0, null, domain, secure); + return this.connect(AuthenticationMethod.None, null, address, port, null, 0, null, domain, secure, wsUrl); } } @@ -1387,7 +1387,7 @@ export default class DistributedConnection extends IStore { connect(method = AuthenticationMethod.Certificate, socket = null, hostname = null, port = 0, - username = null, tokenIndex = 0, passwordOrToken = null, domain = null, secure = false) + username = null, tokenIndex = 0, passwordOrToken = null, domain = null, secure = false, wsUrl = "") { if (this.#openReply != null) @@ -1440,7 +1440,10 @@ export default class DistributedConnection extends IStore { this.#hostname = hostname; if (secure != null) - this.#secure = secure; + socket.secure = secure; + + if (wsUrl != null) + socket.wsUrl = wsUrl; this.#connectSocket(socket); @@ -1451,7 +1454,7 @@ export default class DistributedConnection extends IStore { #connectSocket(socket){ let self = this; - socket.connect(this.#hostname, this.#port, this.#secure).then(x => + socket.connect(this.#hostname, this.#port).then(x => { self.assign(socket); }).error((x) => diff --git a/src/Net/Sockets/WSocket.js b/src/Net/Sockets/WSocket.js index db5dbab..cb81569 100644 --- a/src/Net/Sockets/WSocket.js +++ b/src/Net/Sockets/WSocket.js @@ -13,6 +13,8 @@ export default class WSocket extends ISocket this.receiveNetworkBuffer = new NetworkBuffer(); this.sendNetworkBuffer = new NetworkBuffer(); this.held = false; + this.wsUrl = ""; + this.secure = false; if (websocket != null) { @@ -84,12 +86,12 @@ export default class WSocket extends ISocket return WSocket.webSocket; } - connect(hostname, port, secure = false) { + connect(hostname, port) { let self = this; var rt = new AsyncReply(); this.state = SocketState.Connecting; - this.url = `ws${secure ? 's' : ''}://${hostname}:${port}`; + this.url = `ws${this.secure ? 's' : ''}://${hostname}:${port}/${this.wsUrl}`; WSocket.getWebScoket().then(webSocket => { diff --git a/src/Resource/Template/TypeTemplate.js b/src/Resource/Template/TypeTemplate.js index 1117db5..da4f3f1 100644 --- a/src/Resource/Template/TypeTemplate.js +++ b/src/Resource/Template/TypeTemplate.js @@ -266,7 +266,7 @@ export default class TypeTemplate { // set UUID this.className = describer.namespace + "." + (describer.className ?? type.prototype.constructor.name); - this.classId = describer.classId ?? SHA256.compute(DC.stringToBytes(this.className)).getUUID(0); + this.classId = describer.classId ?? TypeTemplate.getTypeUUIDByName(this.className);// SHA256.compute(DC.stringToBytes(this.className)).getUUID(0); if (addToWarehouse)