X-Git-Url: https://git.auder.net/?p=qomet.git;a=blobdiff_plain;f=sockets.js;fp=sockets.js;h=2ce8ae9ad7f352b33c761ddcacd501282a808723;hp=eeda127f53aca586ac52f8ce48cd0c142f8f7580;hb=71d1ca9c594b64d959c608a2abbff926480abad5;hpb=f6648c37a3c13efbbc3b8c03c6ff725984c98843 diff --git a/sockets.js b/sockets.js index eeda127..2ce8ae9 100644 --- a/sockets.js +++ b/sockets.js @@ -1,6 +1,6 @@ const message = require("./public/javascripts/utils/socketMessages"); const params = require("./config/parameters"); -const AssessmentEntity = require("./entities/assessment"); +const AssessmentModel = require("./models/assessment"); const ObjectId = require("bson-objectid"); module.exports = function(io) @@ -10,34 +10,23 @@ module.exports = function(io) socket.join(aid); // Student or monitor connexion const isTeacher = !!socket.handshake.query.secret && socket.handshake.query.secret == params.secret; + if (isTeacher) { socket.on(message.newAnswer, m => { //got answer from student socket.emit(message.newAnswer, m); }); socket.on(message.allAnswers, m => { //send feedback to student (answers) - if (!!students[m.number]) //TODO: namespace here... room quiz - socket.broadcast.to(aid).emit(message.allAnswers, m); + socket.broadcast.to(aid).emit(message.allAnswers, m); }); } else //student { const number = socket.handshake.query.number; const password = socket.handshake.query.password; - AssessmentEntity.checkPassword(ObjectId(aid), number, password, (err,ret) => { + AssessmentModel.checkPassword(ObjectId(aid), number, password, (err,ret) => { if (!!err || !ret) return; //wrong password, or some unexpected error... - // TODO: Prevent socket connection (just ignore) if student already connected -// io.of('/').in(aid).clients((error, clients) => { -// if (error) -// throw error; -// if (clients.some( c => { return c. .. == number; })) -// // Problem: we just have a list of socket IDs (not handshakes) -// }); - // TODO: next is conditional to "student not already taking the exam" - socket.on(message.allAnswers, () => { //got all answers from teacher - socket.emit(message.allAnswers, m); - }); socket.on("disconnect", () => { //TODO: notify monitor (grey low opacity background) //Also send to server: discoTime in assessment.papers ...