javascript - Using passport.socketio with express and passport-local-mongoose -


i'm trying make easy chat room using passport , socket.io, need know has emit message using socket.io, use passport.socketio this, , use module passport-local-mongoose simplify using passport.

however, when add

io.use(passportsocketio.authorize({     cookieparser: cookieparser,     secret: 'lqcbfu1wfjagklfzng4x',     store: sessionstore })); 

in app.js caused client-side socket not connected server (if commented block, message server's console )

i thought may due misusing of passport.socketio or module passport-local-mongoose, don't know what's wrong qaq.


app.js:

var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); var session = require('express-session'); var flash = require('req-flash'); var helmet = require('helmet'); var passport = require('passport'); var mongoose = require('mongoose'); var localstrategy = require('passport-local').strategy; var socketio = require('socket.io'); var passportsocketio = require('passport.socketio');  var app = express();  // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs');  // midllewares preprocess things app.use(favicon(path.join(__dirname, 'assets', 'favicon.ico'))); app.use(helmet()); app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieparser()); var sessionstore = new session.memorystore(); app.use(session({     secret: 'lqcbfu1wfjagklfzng4x',     store: sessionstore,     resave: false,      saveuninitialized: false,  })); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); app.use(express.static(path.join(__dirname, 'assets')));  app.use('/', require('./routes/index')); app.use('/users', require('./routes/users'));  // passport config var account = require('./models/account'); passport.use(new localstrategy(account.authenticate())); passport.serializeuser(account.serializeuser()); passport.deserializeuser(account.deserializeuser());  // make socket.io able use passport var io = socketio(); io.use(passportsocketio.authorize({     cookieparser: cookieparser,     secret: 'lqcbfu1wfjagklfzng4x',     store: sessionstore })); app.io = io;  (...) 

bin/www:

(...)  /**  * create http server.  */  var server = http.createserver(app);  /**  * handle socket.io event  */ var io = app.io; io.attach(server); require('../models/socketio')(io);  /**  * listen on provided port, on network interfaces.  */  server.listen(port); server.on('error', onerror); server.on('listening', onlistening);  (...) 

models/account.js:

var mongoose = require('mongoose'); var passportlocalmongoose = require('passport-local-mongoose');  mongoose.promise = require('bluebird'); var monconn = mongoose.createconnection('mongodb://127.0.0.1:27017/account'); var schema = mongoose.schema;  var accountschema = new schema({     username: string,     password: string });  // more setting, visit https://github.com/saintedlama/passport-local-mongoose#options accountschema.plugin(passportlocalmongoose, {     errormessages: {         (...)     } }); var user = monconn.model('account', accountschema);  module.exports = user; 

models/socketio.js:

function iohandler(io){     io.on('connection', function(socket) {         console.log("> connected socketio");         //console.log(string(socket.request.user)+"has logined socket");         socket.emit('hi', {message: "hi"});     }); }  module.exports = iohandler;  


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -