From a4ac062fc0606616132299edfaf630a18fb2e32c Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 31 Aug 2021 18:41:58 +0200 Subject: [PATCH] Superalgos Network: Web Sockets Client and Server working. --- .vscode/Desktop.code-workspace | 10 +++++++ .vscode/Network.code-workspace | 10 +++++++ Desktop/DesktopApp.js | 2 +- .../Modules/WebSocketsClient.js} | 26 +++++++++++-------- Projects/ProjectsSchema.json | 8 +++++- 5 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 .vscode/Desktop.code-workspace create mode 100644 .vscode/Network.code-workspace rename Projects/Network/{NT/Modules/WebSocietsClient.js => SA/Modules/WebSocketsClient.js} (71%) diff --git a/.vscode/Desktop.code-workspace b/.vscode/Desktop.code-workspace new file mode 100644 index 000000000..97e2d4c8f --- /dev/null +++ b/.vscode/Desktop.code-workspace @@ -0,0 +1,10 @@ +{ + "folders": [ + { + "path": "C:\\Superalgos" + } + ], + "settings": { + "search.maintainFileSearchCache": true + } +} \ No newline at end of file diff --git a/.vscode/Network.code-workspace b/.vscode/Network.code-workspace new file mode 100644 index 000000000..97e2d4c8f --- /dev/null +++ b/.vscode/Network.code-workspace @@ -0,0 +1,10 @@ +{ + "folders": [ + { + "path": "C:\\Superalgos" + } + ], + "settings": { + "search.maintainFileSearchCache": true + } +} \ No newline at end of file diff --git a/Desktop/DesktopApp.js b/Desktop/DesktopApp.js index 6f2bef1ff..3c225154c 100644 --- a/Desktop/DesktopApp.js +++ b/Desktop/DesktopApp.js @@ -10,7 +10,7 @@ exports.newDesktopApp = function newDesktopApp() { /* Let's start the Network Interfaces */ - DK.webSocketsClient = DK.projects.network.modules.webSocketsClient.newDesktopModulesWebSocketsClient() + DK.webSocketsClient = SA.projects.network.modules.webSocketsClient.newNetworkModulesWebSocketsClient() DK.webSocketsClient.initialize() diff --git a/Projects/Network/NT/Modules/WebSocietsClient.js b/Projects/Network/SA/Modules/WebSocketsClient.js similarity index 71% rename from Projects/Network/NT/Modules/WebSocietsClient.js rename to Projects/Network/SA/Modules/WebSocketsClient.js index 996d0d07e..01e53f1ed 100644 --- a/Projects/Network/NT/Modules/WebSocietsClient.js +++ b/Projects/Network/SA/Modules/WebSocketsClient.js @@ -19,7 +19,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets } function initialize() { - socketClient = new SA.nodeModules.ws({ host: 'localhost', port: global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT }) + socketClient = new SA.nodeModules.ws('ws://' + 'localhost' + ':' + global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT) //networkInterface = SA.projects.socialTrading.modules.networkInterface.newSocialTradingModulesNetworkInterface() setUpWebsocketClient() @@ -29,11 +29,11 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets try { let handshakeDone = false - socketClient.on('onopen', onConnection) - socketClient.on('onmessage', onMenssage) - socketClient.on('onerror', onError) + socketClient.onopen = () => { onConnection() } + socketClient.onmessage = socketMessage => { onMenssage(socketMessage) } + socketClient.onerror = err => { onError(err) } - function onConnection(socket) { + function onConnection() { /* Send Handshake Message */ @@ -44,28 +44,32 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets async function onMenssage(socketMessage) { try { - let message = JSON.parse(socketMessage.data) + let response = JSON.parse(socketMessage.data) /* Chack if we are waiting for the Handshake response. */ if (handshakeDone === false) { - if (message.result === 'Ok') { + if (response.result === 'Ok') { handshakeDone = true return + } else { + console.log('[ERROR] Web Sockets Client -> onMenssage -> handshakeDone -> message.response = ' + response.message) + return } - } - + } + callbackFunction.receiveResponse(message) callbackFunction = undefined } catch (err) { callbackFunction = undefined - console.log('[ERROR] Web Sockets Client -> setUpWebsocketClient -> err.stack = ' + err.stack) + console.log('[ERROR] Web Sockets Client -> err.stack = ' + err.stack) } } function onError(err) { - console.log('[ERROR] Web Sockets Client -> setUpWebsocketClient -> onError -> err.stack = ' + err.stack) + console.log('[ERROR] Web Sockets Client -> onError -> err.message = ' + err.message) + console.log('[ERROR] Web Sockets Client -> onError -> err.stack = ' + err.stack) } } catch (err) { diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index fbb9b98df..b67c60a29 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -1279,7 +1279,13 @@ "propertyName": "webSocketsInterface", "functionName": "newNetworkModulesWebSocketsInterface", "fileName": "WebSocketsInterface.js" - }, + } + ], + "utilities": [] + }, + "SA": { + "globals": [], + "modules": [ { "name": "Web Sockets Client", "propertyName": "webSocketsClient",