i using node.js express v4 , socket.io implementing websocket.
my app.js this-
var express = require('express'); var socket_io = require( "socket.io" ); var path = require('path'); var favicon = require('serve-favicon'); //var controllers = require('./controllers'); //var middleware = require('./middleware'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); // express var app = express(); // socket.io var io = socket_io(); app.io = io; // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hbs'); app.set('view options', { layout: false }); //disabling default layout require('./view_partials')(app); // uncomment after placing favicon in /public app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieparser()); app.use(express.static(path.join(__dirname, 'public'))); require('./routes')(app); //// socket.io server listens our app //server - data received // send current time connected clients function sendtime() { io.emit('time', { time: new date().tojson() }); } // send current time every 10 secs setinterval(sendtime, 10000); //client - data received // emit welcome message on connection io.on('connection', function(socket) { // use socket communicate particular client only, sending it's own id socket.emit('welcome', { message: 'welcome!', id: socket.id }); socket.on('i client', console.log); }); //////////////////////////////////////// require('./errors')(app); module.exports = app;
i export code-
//client - data received // emit welcome message on connection io.on('connection', function(socket) { // use socket communicate particular client only, sending it's own id socket.emit('welcome', { message: 'welcome!', id: socket.id }); socket.on('i client', console.log); });
to new file.
so, have done this-
client.js-
//client - data received // emit welcome message on connection io.on('connection', function(socket) { // use socket communicate particular client only, sending it's own id socket.emit('welcome', { message: 'welcome!', id: socket.id }); socket.on('i client', console.log); });
app.js-
var express = require('express'); var socket_io = require( "socket.io" ); var path = require('path'); var favicon = require('serve-favicon'); //var controllers = require('./controllers'); //var middleware = require('./middleware'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); // express var app = express(); // socket.io var io = socket_io(); app.io = io; // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hbs'); app.set('view options', { layout: false }); //disabling default layout require('./view_partials')(app); // uncomment after placing favicon in /public app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieparser()); app.use(express.static(path.join(__dirname, 'public'))); require('./routes')(app); //// socket.io server listens our app //server - data received // send current time connected clients function sendtime() { io.emit('time', { time: new date().tojson() }); } // send current time every 10 secs setinterval(sendtime, 10000); require('./websocket/client'); //////////////////////////////////////// require('./errors')(app); module.exports = app;
but is neither giving me error or not working.
can please help, how can export in separate file client , server code can separated?
my full code can found here.
thanks in advance helping.
i have solved problem. need share io
variable include file.
in app.js -
require('./websocket/server')(io);
and ./websocket/server.js -
// socket.io server listens our app module.exports = function(io) { // send current time connected clients function sendtime() { io.emit('time', { time: new date().tojson() }); } // send current time every 10 secs setinterval(sendtime, 10000); }
everything working :).
Comments
Post a Comment