Tchat/index.js

48 lines
1.5 KiB
JavaScript

const util = require('util');
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var bodyParser = require('body-parser');
var session = require('express-session')({
secret: 'fUZG4VjOx9U91Htq2AAA',
cookie: { maxAge: 60000 },
saveUninitialized: true,
resave: false});
var sharedsession = require("express-socket.io-session");
var loginController = require('./controllers/login-controller.js');
app.set('view engine', 'ejs');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
app.use(session);
var xss = require("xss");
io.use(sharedsession(session, {
autoSave:true
}));
app.get('/', function(req, res){
if(req.session.authStatus)
res.render('index');
else
res.redirect('/login');
}).get('/login', function(req, res){
res.render('login');
}).post('/login', loginController, function(req, res){
res.send('<!DOCTYPE html><html><head><meta http-equiv="refresh" content="3;url=http://127.0.0.1:3000" /></head><body>'+req.session.authMessage+'<br><a href="/">HOME</a></body></html>');
});
io.on('connection', function(socket){
if(socket.handshake.session.authStatus)
{
socket.on('chat message', function(msg){
var s = ((socket.handshake.session.authMessage=='AUTH WITHOUT REG OK')?"*":"");
io.emit('chat message', "<strong>"+s+socket.handshake.session.userName+" : </strong>"+xss(msg));
});
}
});
http.listen(3000, function(){
console.log('listening on *:3000');
});