/bin/www:#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('server:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
var io = require("socket.io")(server),
passportSocketIo = require("passport.socketio"),
express = require('express'),
cookieParser = require('cookie-parser'),
redis = require('redis'),
session = require('express-session'),
redisStore = require('connect-redis')(session);
var client = redis.createClient();
io.use(passportSocketIo.authorize({
cookieParser: cookieParser,
key: '***', // the name of the cookie where express/connect stores its session_id
secret: '*********', // the session_secret to parse the cookie
store: new redisStore({ host: '*****', port: *******, client: client }),
success: onAuthorizeSuccess, // *optional* callback on success - read more below
fail: onAuthorizeFail // *optional* callback on fail/error - read more below
}));
var ioHandlers = require('../sockets')(io,passportSocketIo);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
в какой момент лучше породить дочерний процесс?
Возможно, есть модули, которые сюда подойдут лучше встроенного cluster.
Гугл выдаёт множество способов включения кластера, но они все как-то не похожи на то, что у меня.
Если дочерний процесс порождать в app.js, то сокеты продолжат выполняться в одном потоке.