Event Broadcasting

This commit is contained in:
Luis Fernando Molina committed 2021-09-07 16:57:48 +02:00
1 parent bac140cf92
commit 4e92ff1740
1 file changed
+32 -2
@@ -104,18 +104,23 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
return
}
let response
switch (caller.role) {
case 'Network Client': {
let response = await clientInterface.messageReceived(messageHeader.payload, caller.userProfile)
response = await clientInterface.messageReceived(messageHeader.payload, caller.userProfile)
caller.socket.send(JSON.stringify(response))
break
}
case 'Network Peer': {
let response = await peerInterface.messageReceived(messageHeader.payload)
response = await peerInterface.messageReceived(messageHeader.payload)
caller.socket.send(JSON.stringify(response))
break
}
}
if (response.result === 'Ok' && messageHeader.payload.requestType === 'Event') {
broadcastToPeers(messageHeader, caller)
broadcastToClients(messageHeader, caller)
}
break
}
default: {
@@ -408,6 +413,31 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
}
}
}
function broadcastToPeers(messageHeader, caller) {
let callerIdToAVoid
if (caller.role === 'Network Peer') {
callerIdToAVoid = caller.socket.id
}
for (let i = 0; i < thisObject.networkPeers.length; i++) {
let networkPeer = thisObject.networkPeers[i]
if (networkPeer.socket.id === callerIdToAVoid) { continue }
networkPeer.socket.send(messageHeader)
}
}
function broadcastToClients(messageHeader, caller) {
let callerIdToAVoid
if (caller.role === 'Network Client') {
callerIdToAVoid = caller.socket.id
}
for (let i = 0; i < thisObject.networkClients.length; i++) {
let networkClient = thisObject.networkClients[i]
if (networkClient.socket.id === callerIdToAVoid) { continue }
networkClient.socket.send(messageHeader)
}
}
} catch (err) {
console.log('[ERROR] Web Sockets Interface -> setUpWebSocketServer -> err.stack = ' + err.stack)
}