one time use sockets

This commit is contained in:
Daniel Lugo 2020-02-18 22:07:17 -04:00
parent 4f9cfd81ef
commit 06bfa08154

View file

@ -3,9 +3,11 @@
const logger = require("winston");
module.exports = (
/** @type {import('socket.io').Server} */
io,
lnd,
) => {
const Mediator = require("../services/gunDB/Mediator/index.js");
const EventEmitter = require("events");
@ -42,25 +44,49 @@ module.exports = (
io.on("connection", socket => {
logger.info(`io.onconnection`)
// this is where we create the websocket connection
// with the GunDB service.
Mediator.createMediator(socket);
logger.info(`socket after createmediator`)
logger.info("socket.handshake", socket.handshake);
/** printing out the client who joined */
logger.info("New socket client connected (id=" + socket.id + ").");
registerSocketListeners(socket);
const isOneTimeUseSocket = !!socket.handshake.query.IS_GUN_AUTH
/** listening if client has disconnected */
socket.on("disconnect", () => {
unregisterSocketListeners(socket);
logger.info("client disconnected (id=" + socket.id + ").");
});
});
if (isOneTimeUseSocket) {
logger.info('New socket is one time use')
socket.on('IS_GUN_AUTH', () => {
try {
const isGunAuth = Mediator.isAuthenticated()
socket.emit('IS_GUN_AUTH', {
ok: true,
msg: {
isGunAuth
},
origBody: {}
})
socket.disconnect()
} catch (err) {
socket.emit('IS_GUN_AUTH', {
ok: false,
msg: err.message,
origBody: {}
})
socket.disconnect()
}
})
} else {
logger.info('New socket is NOT one time use')
// this is where we create the websocket connection
// with the GunDB service.
Mediator.createMediator(socket);
registerSocketListeners(socket);
/** listening if client has disconnected */
socket.on("disconnect", () => {
unregisterSocketListeners(socket);
logger.info("client disconnected (id=" + socket.id + ").");
});
}
})
return mySocketsEvents;
};