[Node.js] 리얼타임 웹을 위한 Socket.IO(1)

[Node.js] 리얼타임 웹을 위한 Socket.IO(1)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

// JavaScript Code /** * Module dependencies. */ var express = require( 'express' ); var routes = require( './routes' ); var user = require( './routes/user' ); var http = require( 'http' ); var path = require( 'path' ); var io = require( 'socket.io' ); var app = express(); // all environments app.set( 'port' , process.env.PORT || 80); app.set( 'views' , path.join(__dirname, 'views' )); app.set( 'view engine' , 'jade' ); app.use(express.favicon()); app.use(express.logger( 'dev' )); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public' ))); // development only if ( 'development' == app.get( 'env' )) { app.use(express.errorHandler()); } app.get( '/' , routes.index); app.get( '/users' , user.list); var server = http.createServer(app).listen(app.get( 'port' ), function (){ console.log( 'Express server listening on port ' + app.get( 'port' )); }); io = io.listen(server, function (){ console.log( 'Socket.io Server Started.' ); }); io.configure( function (){ io.enable( 'browser client etag' ); io.set( 'log level' , 3); io.set( 'transports' , [ 'websocket' , 'flashsocket' , 'htmlfile' , 'xhr-polling' , 'jsonp-polling' ]); }); var renderHtml = function (fileName, res) { var filePath = 'public/' + fileName; fs.readFile(filePath, function (err, data) { if (err) { var errCode = filePath + ' load faild check the file name' ; console.log(errCode); } else { res.writeHead(200, { "Content-type" : "text/html" }); res.end(data); } }); }

from http://thinknotepad.tistory.com/161 by ccl(A) rewrite - 2020-03-07 11:22:45

댓글

이 블로그의 인기 게시물

HTML 13단계 - 폼(Form) 1탄

임시 인터넷 파일캐싱을 위한 방지 html,css,javascript

[C#]Log4Net 사용법