Мое приложение для сокетов открывается в iframe с запросом публикации из другого приложения, которое отправляет ИД пользователя в данных запроса.Я получаю этот идентификатор пользователя в app.post, но во время маршрутизации сеанс сбрасывается, и я не могу получить этот идентификатор пользователя в io.on для получения данных на основе этого идентификатора пользователя.
app.js code-
var crypto = require('crypto')
const http = require('https')
const express = require('express')
const cookieParser = require('cookie-parser')
const mysql = require('mysql')
const socket = require('./socket')
const routes = require('./routes')
var bodyParser = require('body-parser');
const { sessionMiddleware } = require('./middlewares')
var fs = require( 'fs' );
var app = express();
var options = {
hostname: 'https://xxx.xxx.net:3000',
key: fs.readFileSync('xxx.pem'),
cert: fs.readFileSync('xxx.pem')
};
const server = http.createServer(options,app)
const io = socket(server)
io.use((socket, next) => {
sessionMiddleware(
socket.request,
socket.request.res,
next
)
})
app.use(sessionMiddleware)
app.use(express.static('public'))
app.use('/', routes)
app.use(cookieParser())
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,
Content-Type, Accept");
next();
});
// parse application/json
app.use(bodyParser.json())
app.post('/', function(req, res){
var uid = req.body.userid;
req.session.userID = uid;
req.session.save();
console.log('data-'+req.session.userID);
res.redirect('/home');
});
io.on('connection', socket => {
// need to get user id here
//do all action here based on userid
console.log('sessionTD-'+socket.request.sessionID);
//const req = socket.request
})