| Current Path : /var/node/inatote/Inatote-Backend/helpers/ |
| Current File : /var/node/inatote/Inatote-Backend/helpers/web-socket.js |
export default function makeWebSocket({ database }) {
return function connection({ client }) {
var users = []
var dbUsers = []
// event fired when the chat room is disconnected
// client.on("disconnect", () => {
// //console.log("disconnect")
// users = users.filter((user) => user['socketID'] !== client.id);
// });
// client.on('identity', (userId) => {
// //console.log("identity")
// users.push({
// userId: userId,
// socketID: client.id
// })
// })
// add identity of user mapped to the socket id
// client.on("onMessage", async (payload) => {
// //console.log("onMessage")
// // payload consist of from, to, message, orderID,
// // this object will be stored in database
// // {
// // "orderID": orderId,
// // "from": id,
// // "to": id,
// // "message": "asd",
// // "socketID": client.id
// // }
// var toUser = await getUser(payload['to'])
// if (toUser == undefined) return
// var isLoggedIn = false
// for (var i = 0; i < users.length; i++) {
// if (users[i]['userId'] == payload['to']) {
// isLoggedIn = true
// // get respective users from thier ids fcm information for firebase push
// client.broadcast.to(users[i]['socketID']).emit('Recieved Message', payload);
// }
// }
// if (!isLoggedIn) {
// // firebase push initiate if user not connected
// }
// });
}
async function getUser({ id }) {
var dbuser = dbUsers.find((dbuser) => dbuser.userId == id)
if (dbuser == undefined) {
const userList = makeUserList({ database })
dbuser = await userList.findById({ userId: users[i]['userId'] })
dbUsers.push(dbuser)
}
return dbuser
}
}