httpInterface at Node implemented
This commit is contained in:
1 parent
e91e135ef7
commit
6495cd77de
7 files changed
+73
-7
No files matched your search
@@ -17,6 +17,7 @@ exports.newEnvironment = function () {
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
|
||||
PLATFORM_HTTP_INTERFACE_PORT: 34248,
|
||||
DESKTOP_HTTP_INTERFACE_PORT: 33248,
|
||||
NETWORK_HTTP_INTERFACE_PORT: 31248,
|
||||
PATH_TO_DATA_STORAGE: path.join(basePath, './Platform/My-Data-Storage'),
|
||||
PATH_TO_PROJECTS: path.join(basePath, './Projects'),
|
||||
PATH_TO_LOG_FILES: path.join(basePath, './Platform/My-Log-Files'),
|
||||
|
||||
@@ -6,6 +6,7 @@ exports.newNetworkNode = function newNetworkNode() {
|
||||
p2pNetworkPeers: undefined,
|
||||
p2pNetworkNode: undefined,
|
||||
webSocketsInterface: undefined,
|
||||
httpInterface: undefined,
|
||||
socialGraphService: undefined,
|
||||
storage: undefined,
|
||||
run: run
|
||||
@@ -65,6 +66,12 @@ exports.newNetworkNode = function newNetworkNode() {
|
||||
thisObject.webSocketsInterface = NT.projects.network.modules.webSocketsInterface.newNetworkModulesWebSocketsInterface()
|
||||
thisObject.webSocketsInterface.initialize()
|
||||
console.log('Network Node Web Sockets Interface ........................................... Listening at port ' + JSON.parse(NT.networkNode.p2pNetworkNode.node.config).webSocketsPort)
|
||||
/*
|
||||
Other Network Nodes and Client Apps will communicate with this Network Node via it's HTTP Interface.
|
||||
*/
|
||||
thisObject.webSocketsInterface = NT.projects.network.modules.webHttpInterface.newNetworkModulesHttpInterface()
|
||||
thisObject.webSocketsInterface.initialize()
|
||||
console.log('Network Node Http Interface .................................................. Listening at port ' + JSON.parse(NT.networkNode.p2pNetworkNode.node.config).webPort)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17236,7 +17236,7 @@
|
||||
"signingAccountChild": {
|
||||
"type": "P2P Network Node",
|
||||
"name": "P2P Network Node # 1",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-1\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18042\"\n}",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-1\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18042\",\n \"webPort\": \"31248\"\n}",
|
||||
"project": "Governance",
|
||||
"id": "bb0f0417-9dfb-47a3-941f-dcfa82fbaea1",
|
||||
"savedPayload": {
|
||||
@@ -17292,7 +17292,7 @@
|
||||
"signingAccountChild": {
|
||||
"type": "P2P Network Node",
|
||||
"name": "P2P Network Node # 2",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-2\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18043\"\n}",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-2\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18043\",\n \"webPort\": \"31248\"\n}",
|
||||
"project": "Governance",
|
||||
"id": "76fa8a24-9ab4-4eaf-82f2-458ba557b204",
|
||||
"savedPayload": {
|
||||
@@ -17348,7 +17348,7 @@
|
||||
"signingAccountChild": {
|
||||
"type": "P2P Network Node",
|
||||
"name": "P2P Network Node # 3",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-3\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18044\"\n}",
|
||||
"config": "{\n \"codeName\": \"P2P-Network-Node-3\",\n \"host\": \"localhost\",\n \"webSocketsPort\": \"18044\",\n \"webPort\": \"31248\"\n}",
|
||||
"project": "Governance",
|
||||
"id": "297e57c2-3c1a-4170-b710-d2705804205b",
|
||||
"savedPayload": {
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"config": true
|
||||
},
|
||||
"initialValues": {
|
||||
"config": "{ \n\"codeName\": \"localhost\", \n\"host\": \"localhost\", \n\"webSocketsPort\": \"18042\"\n}"
|
||||
"config": "{ \n\"codeName\": \"localhost\", \n\"host\": \"localhost\", \n\"webPort\": \"31248\", \n\"webSocketsPort\": \"18042\"\n}"
|
||||
},
|
||||
"addLeftIcons": true,
|
||||
"level": 1,
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
exports.newNetworkModulesHttpInterface = function newNetworkModulesHttpInterface() {
|
||||
/*
|
||||
This module represent the HTTP API of the
|
||||
NNetwork Node. All HTTP request are processed
|
||||
by this module.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function finalize() {
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
let port = JSON.parse(NT.networkNode.p2pNetworkNode.node.config).webPort
|
||||
/*
|
||||
We will create an HTTP Server and leave it running forever.
|
||||
*/
|
||||
SA.nodeModules.http.createServer(onHttpRequest).listen(port)
|
||||
}
|
||||
|
||||
function onHttpRequest(httpRequest, httpResponse) {
|
||||
try {
|
||||
let requestPathAndParameters = httpRequest.url.split('?') // Remove version information
|
||||
let requestPath = requestPathAndParameters[0].split('/')
|
||||
let endpointOrFile = requestPath[1]
|
||||
|
||||
switch (endpointOrFile) {
|
||||
case 'Signal':
|
||||
{
|
||||
let message = requestPath[2]
|
||||
let response = await thisObject.clientInterface.messageReceived(message)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(response), httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Stats':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify([]), httpResponse)
|
||||
}
|
||||
break
|
||||
default:
|
||||
{
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err.stack)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1389,6 +1389,12 @@
|
||||
"propertyName": "webSocketsInterface",
|
||||
"functionName": "newNetworkModulesWebSocketsInterface",
|
||||
"fileName": "WebSocketsInterface.js"
|
||||
},
|
||||
{
|
||||
"name": "Http Interface",
|
||||
"propertyName": "httpInterface",
|
||||
"functionName": "newNetworkModulesHttpInterface",
|
||||
"fileName": "HttpInterface.js"
|
||||
}
|
||||
],
|
||||
"utilities": []
|
||||
@@ -1629,7 +1635,7 @@
|
||||
"name": "Http Interface",
|
||||
"propertyName": "httpInterface",
|
||||
"functionName": "newDesktopModulesHttpInterface",
|
||||
"fileName": "httpInterface.js"
|
||||
"fileName": "HttpInterface.js"
|
||||
},
|
||||
{
|
||||
"name": "Web Sockets Interface",
|
||||
|
||||
@@ -64,7 +64,7 @@ exports.newSocialTradingModulesClientInterface = function newSocialTradingModule
|
||||
return await eventReceived(messageHeader.eventMessage, userProfile)
|
||||
}
|
||||
case 'Signal': {
|
||||
return await signalReceived(messageHeader.eventMessage, userProfile)
|
||||
return await signalReceived(messageHeader.eventMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -245,7 +245,7 @@ exports.newSocialTradingModulesClientInterface = function newSocialTradingModule
|
||||
}
|
||||
}
|
||||
|
||||
async function signalReceived(signalMessage, userProfile) {
|
||||
async function signalReceived(signalMessage) {
|
||||
/*
|
||||
We expect here a JSON string with some or all of the following properties:
|
||||
|
||||
|
||||
Reference in new issue
Block a user