このまえインストールしたnodeで遊んでみた。リアルタイムおもしろいな!
app.js
/** * Module dependencies. */ var express = require('express'); var app = module.exports = express.createServer(); var io = require('socket.io').listen(app); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); // Routes app.get('/', function(req, res){ res.render('index', { title: 'nekoExpress' }); }); io.set('transports', [ 'websocket' , 'flashsocket' , 'htmlfile' , 'xhr-polling' , 'jsonp-polling' ]); io.sockets.on('connection',function(socket){ socket.on('user message',function(data){ socket.broadcast.emit('user message',data); io.sockets.emit('user message',data); console.log(data.my); }); }); app.listen(3000); console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
index.ejs
<!DOCTYPE html> <html> <head> <title>test app</title> <meta charset="urt-8"/> <script src="/socket.io/socket.io.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script> </head> <body> <h1>Socket</h1> <div id="tt"> <p>なるほろー</p> </div> <div id="display"> </div> <input type="text" id="message" /> <script> var socket = io.connect('http://localhost'); socket.on('user message',function(data){ $('#display').text(data); }); $(function(){ $('#message').keyup(function(){ socket.emit('user message',$(this).val()); }); }); </script> </body> </html>
ブラウザを2つ立ち上げて、
なにか入力してみる。