Web Socket Client Implemented

This commit is contained in:
Luis Fernando Molina committed 2021-08-31 15:48:03 +02:00
1 parent b47b9b3dcf
commit b18b1f2342
4 files changed
+106 -3

No files matched your search

@@ -0,0 +1,97 @@
exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSocketsClient() {
let thisObject = {
sendMessage: sendMessage,
initialize: initialize,
finalize: finalize
}
let socketClient
let callbackFunction
return thisObject
function finalize() {
socketClient.close()
socketClient = undefined
networkInterface = undefined
peerInterface = undefined
}
function initialize() {
socketClient = new SA.nodeModules.ws({ host: 'localhost', port: global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT })
//networkInterface = SA.projects.socialTrading.modules.networkInterface.newSocialTradingModulesNetworkInterface()
setUpWebsocketClient()
}
function setUpWebsocketClient() {
try {
let handshakeDone = false
socketClient.on('onopen', onConnection)
socketClient.on('onmessage', onMenssage)
socketClient.on('onerror', onError)
function onConnection(socket) {
/*
Send Handshake Message
*/
socketClient.send('Handshake Message')
console.log('Handshake Message Sent')
}
async function onMenssage(socketMessage) {
try {
let message = JSON.parse(socketMessage.data)
/*
Chack if we are waiting for the Handshake response.
*/
if (handshakeDone === false) {
if (message.result === 'Ok') {
handshakeDone = true
return
}
}
callbackFunction.receiveResponse(message)
callbackFunction = undefined
} catch (err) {
callbackFunction = undefined
console.log('[ERROR] Web Sockets Client -> setUpWebsocketClient -> err.stack = ' + err.stack)
}
}
function onError(err) {
console.log('[ERROR] Web Sockets Client -> setUpWebsocketClient -> onError -> err.stack = ' + err.stack)
}
} catch (err) {
console.log('[ERROR] Web Sockets Client -> setUpWebsocketClient -> err.stack = ' + err.stack)
}
}
function sendMessage(message, callback) {
if (callbackFunction !== undefined) {
console.log('[ERROR] Web Sockets Client -> sendMessage -> Cannot send more messages while waiting for a response.')
return false
}
if (socketClient.readyState !== 1) { // 1 means connected and ready.
console.log('[ERROR] Web Sockets Client -> sendMessage -> Cannot send message while connection is closed.')
return false
}
try {
callbackFunction = callback
socketClient.send(message)
return true
} catch (err) {
callbackFunction = false
console.log('[ERROR] Web Sockets Client -> sendMessage -> err.stack = ' + err.stack)
return false
}
}
}
@@ -90,7 +90,7 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
}
}
} catch (err) {
console.log('[ERROR] Network -> Web Sockets Interface -> run -> setUpWebSocketServer -> err.stack = ' + err.stack)
console.log('[ERROR] Web Sockets Interface -> setUpWebSocketServer -> err.stack = ' + err.stack)
}
}
}
@@ -167,7 +167,7 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
}
} catch (err) {
console.log('[ERROR] Network -> Web Sockets Interface -> run -> setUpWebSocketServer -> err.stack = ' + err.stack)
console.log('[ERROR] Web Sockets Interface -> setUpWebSocketServer -> err.stack = ' + err.stack)
}
}
}
+6
View File
@@ -1279,6 +1279,12 @@
"propertyName": "webSocketsInterface",
"functionName": "newNetworkModulesWebSocketsInterface",
"fileName": "WebSocketsInterface.js"
},
{
"name": "Web Sockets Client",
"propertyName": "webSocketsClient",
"functionName": "newNetworkModulesWebSocketsClient",
"fileName": "WebSocketsClient.js"
}
],
"utilities": []
+1 -1
View File
@@ -45,7 +45,7 @@ SA.nodeModules = {
ws: require('ws')
}
DK.app = require('./Network/DesktopApp.js').newNetworkNode()
DK.app = require('./Desktop/DesktopApp.js').newDesktopApp()
DK.app.run()
console.log('Superalgos Desktop is Running.')