one time use sockets
This commit is contained in:
parent
4f9cfd81ef
commit
06bfa08154
1 changed files with 39 additions and 13 deletions
|
|
@ -3,9 +3,11 @@
|
||||||
const logger = require("winston");
|
const logger = require("winston");
|
||||||
|
|
||||||
module.exports = (
|
module.exports = (
|
||||||
|
/** @type {import('socket.io').Server} */
|
||||||
io,
|
io,
|
||||||
lnd,
|
lnd,
|
||||||
) => {
|
) => {
|
||||||
|
|
||||||
const Mediator = require("../services/gunDB/Mediator/index.js");
|
const Mediator = require("../services/gunDB/Mediator/index.js");
|
||||||
const EventEmitter = require("events");
|
const EventEmitter = require("events");
|
||||||
|
|
||||||
|
|
@ -42,25 +44,49 @@ module.exports = (
|
||||||
io.on("connection", socket => {
|
io.on("connection", socket => {
|
||||||
logger.info(`io.onconnection`)
|
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);
|
logger.info("socket.handshake", socket.handshake);
|
||||||
|
|
||||||
/** printing out the client who joined */
|
/** printing out the client who joined */
|
||||||
logger.info("New socket client connected (id=" + socket.id + ").");
|
logger.info("New socket client connected (id=" + socket.id + ").");
|
||||||
|
|
||||||
registerSocketListeners(socket);
|
const isOneTimeUseSocket = !!socket.handshake.query.IS_GUN_AUTH
|
||||||
|
|
||||||
/** listening if client has disconnected */
|
if (isOneTimeUseSocket) {
|
||||||
socket.on("disconnect", () => {
|
logger.info('New socket is one time use')
|
||||||
unregisterSocketListeners(socket);
|
socket.on('IS_GUN_AUTH', () => {
|
||||||
logger.info("client disconnected (id=" + socket.id + ").");
|
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;
|
return mySocketsEvents;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue