nodejs+socket ioを試す

Download Nodejs+socket ioを試す

If you can't read please download the document

Upload: uzundk

Post on 20-Jun-2015

1.080 views

Category:

Software


0 download

TRANSCRIPT

  • 1. @Uzundk node.js + Socket.IO

2. @uzundk Excel / VBA 6 PHP 1 node.js 3 3. ? IO Node.js uses an event-driven, non-blocking I/O model http://nodejs.org/ 4. CPU IO C10K 111 IO node.js? 5. year CPU GHz FLOPS /Clock Core GFLOPS /Core Total GFLOPS mem mem GB/s HDD GB/s 2006 Core Duo 2.33 1.5 2 3.495 6.99 DDR2 -4200 4.267 0.07 2014 Haswell 3.5 16 4 56 224 DDR3 -10600 21.2 0.15 Update Rate 16.02 32.05 4.97 2.14> 6. It's care-free realtime 100% in JavaScript. ? 7. Ajax long polling HTTP Plugin Socket FLASH,Sliverlight WebSocket HTTPupgrade 8. $(function(){! //WebSocket! var socket = io.connect('http://'+window.location.host+'/');! ! //! socket.on('connect',function(){! ! ! ! ! //! socket.emit('echo','Connection Success');! ! ! //echo test! socket.on('echo',function(msg){! console.log('echo : '+msg);! socket.emit('broadcast','user login');! });! ! ! //broadcast test! socket.on('broadcast',function(msg){! console.log('broadcast : '+msg);! });! ! ! //Disconnect! socket.on('disconnect',function(){! console.log('Disconnect Server.');! });! });! ! });! eventname Client side broadcast echoEvent broadcast event:echo Socket.IO 9. //Express! var server = http.createServer(app);! server.listen(app.get('port'), function(){! console.log('Express server listening on port ' + app.get('port'));! });! ! //WebsocketModule! var socketIO = require('socket.io');! ! //Listener! var io = socketIO.listen(server);! ! //Event! var sockets = io.sockets.on('connection',function(client){! ! ! ! //echo message! client.on('echo',function(msg){! client.emit('echo',msg);! });! ! //broadcast message! client.on('broadcast',function(msg){! client.emit('broadcast',msg);! client.broadcast.emit('broadcast',msg);! });! ! //disconnect! client.on('disconnect', function() {! client.broadcast.emit('broadcast','disconnected ');! });! ! }); ! ExpressHTTP IO eventCallback echo event eventname broadcast event Server side 10. emit/sendon socket.emit('echo','Connection Success'); client.on('echo',function(msg){! ! client.emit('echo',msg);! });! socket.on('echo',function(msg){! ! console.log('echo : '+msg);! ! socket.emit('broadcast','user login');! }); client.on('broadcast',function(msg){! ! client.emit('broadcast',msg);! ! client.broadcast.emit('broadcast',msg);! });! socket.on('broadcast',function(msg){! ! console.log('broadcast : '+msg);! });! client.emit > client.broadcast.emit > sockets.emit > Client Server 11. socket.on('echo',function(msg){! ! console.log('echo : '+msg);! }); client.emit('echo',msg); socket.on(echo',function(msg,fn){! ! console.log('echo : '+msg);! ! fn('catch')! }); client.emit(echo,msg,function(data){! ! console.log(data)! });! 12. Server Clients Target Worker Worker Worker Worker Worker Target Target Target Target FTP Clients Clients WSWebSocket Target Target Target Target Target Target Target Target Target Target Target Target Target Target Target / 13. Server Clients Target Worker Worker Worker Worker Worker Target Target Target Target FTP Clients Clients WSWebSocket Target Target Target Target Target Target Target Target Target Target Target Target Target Target Target DB? DB 14. ? 15. 5MB/s 16. 1:n? ? Redis 17.