带会话处理的套接字。 在Post方法上创build会话。 服务器端值被设置。 但发射到客户端刷新

我已经在post方法上创build了一个会话variables。 值在服务器端设置。

var sess; app.post('/loginn', function(req,res){ sess=req.session; sess.email=req.body.email; console.log("sess.email"); // value is set here io.emit("socket email",{email: sess.email}); // To access the session in client i tried emit on post but its not accessible res.json({id : req.body.socket, user : req.body.email, message : "done" }); }); 

我在访问url http:// localhost:3001 / notification时使用了会话variables

由以下代码。

 app.get('/notification', function(req,res){ sess=req.session; console.log(sess); console.log("sess id "+sess.email); var some_date="2313232432232"; if(sess.email){ io.emit("socket email",{email: sess.email}); connection.query('select * from mdl_mobile_user where mob_email="'+sess.email+'"', function(error,rows){ if(error){ console.log("Error"+error); } else{ if(rows.length==0){ connection.query('insert into mdl_mobile_user (mob_email,timejoin) values ("'+sess.email+'","'+some_date+'")',function(error,results){ if(error){ console.log("Error"+error); } else{ console.log("User saved in db"); } }); } else{ console.log("This user already enrolled in mobile"); } } }) res.writeHead(200, {'Content-Type': 'text/html'}); res.end(notification); } else{ res.writeHead(200, {'Content-Type': 'text/html'}); res.end(index); } }); 

通过这样做,值设置在服务器端的罚款,但后在价值不设置在客户端。 在发布后,我做了redirect到通知页面。

 $("#submit").click(function(){ email=$("#email").val(); pass=$("#password").val(); /* * Perform some validation here. */ $.post("http://10.21.1.50:3001/loginn",{email:email,pass:pass,socket:socket.id},function(data){ console.log(data.message); if(data.message==='done') { window.location.href="/notification"; } }); }); 

一审我没有得到从服务器的价值。 但是当我刷新页面。 我得到的价值。 其他情况也是如此。 在这个通知页面上,我想显示他/她正在等待的所有消息,它为我工作。 但只有当我刷新页面几次才发生。

这我通过服务器代码执行

 socket.on("message check",function(req,res){ console.log("Email from user"+req.res_email); connection.query("select mdl_mobile_user.mob_email,mdl_mobile_notification.mob_message,mdl_mobile_notification.notification,mdl_mobile_notification.id from mdl_mobile_user join mdl_mobile_notification on mdl_mobile_user.id=mdl_mobile_notification.mob_user_id where mdl_mobile_user.mob_email='"+req.res_email+"' and mdl_mobile_notification.notification=0", function(error,rows){ if(error){ console.log("Error"+error); }else { if(rows.length!=0){ console.log(rows); var message_json=JSON.stringify(rows); var message_parse=JSON.parse(message_json); for(var i=0;i<message_parse.length;i++){ console.log(message_parse[i].id+"says"+message_parse[i].mob_message); io.emit('post notification message', {message_id: message_parse[i].id, message_content: message_parse[i].mob_message}); } //socket.emit('post notifiation message' , {id : user_id, message : server_msg}); }else{ console.log("No messages found"); } } }); 

客户:

 socket.on('post notification message', function(res){ console.log(res); addMessage(res.message_id,res.message_content); socket.emit("change notification status", {id : res.message_id}); });