MAKE WEB REAL RealTime Socket.io Caesar Chi http://about.me/clonn Saturday, April 19, 14
Caesar Chi clonncd Saturday, April 19, 14
http://www.ickr.com/photos/kent-chen/6612953485/sizes/l/in/photostream/ Saturday, April 19, 14
REAL TIME? Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
http://www.ickr.com/photos/goldentime/4089413847/sizes/z/in/photostream/ Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
http://socket.io/ Saturday, April 19, 14
socket.ioinstall Saturday, April 19, 14
Socket.io Socket.io -client Saturday, April 19, 14
Saturday, April 19, 14
Chrome FireFox IE Mobile Saturday, April 19, 14
WebSocket Adobe Flash Socket AJAX long polling AJAX multipart streaming Forever Iframe JSONP Polling Saturday, April 19, 14
Simple Code https://gist.github.com/4049817 Saturday, April 19, 14
var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); var socket = io.connect(); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); Saturday, April 19, 14
var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') var socketio = require('socket.io'), io; function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } Saturday, April 19, 14
Saturday, April 19, 14
with Express Saturday, April 19, 14
server = http.createServer(app); server.listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); require('./io.server').io(server); Saturday, April 19, 14
var socketio = require('socket.io'), io; exports.io = function (server) { io = socketio.listen(server); io.sockets.on('connection', function (socket) { socket.emit('init', { id: socket.id }); }); }; Saturday, April 19, 14
var socket = io.connect(), socket.on('init', function (data) { concole.log(data); }); Saturday, April 19, 14
Saturday, April 19, 14
io.sockets.on('connection', function (socket) { socket.broadcast.emit('user connected'); }); () Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
io.sockets.on('connection', function (socket) { io.sockets.emit('user connected'); }); () Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
https://github.com/LearnBoost/Socket.IO/wiki/Conguring- Socket.IO Saturday, April 19, 14
// assuming io is the Socket.IO server object io.configure(function () { io.set("transports", ["xhr-polling"]); io.set("polling duration", 10); }); Saturday, April 19, 14
https://github.com/LearnBoost/socket.io/wiki/Authorizing Saturday, April 19, 14
handshake Saturday, April 19, 14
Cookie Saturday, April 19, 14
{ headers: req.headers // the headers of the request , time: (new Date) +'' // date time of the connection , address: socket.address() // remoteAddress and remotePort object , xdomain: !!headers.origin // was it a cross domain request? , secure: socket.secure // https connection , issued: +date // EPOCH of when the handshake was created , url: request.url // the entrance path of the request , query: data.query // the result of url.parse().query or a empty object } Saturday, April 19, 14
Saturday, April 19, 14
var io = require('socket.io').listen(80); io.configure(function (){ io.set('authorization', function (handshakeData, callback) { handshakeData.userData = { name: Caesar, age: 18 }; callback(null, true); // error first callback style }); }); User Connection Saturday, April 19, 14
io.sockets.on('connection', function (socket) { console.log(socket.handshake.userData); }); User Data Saturday, April 19, 14
NODE Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
https://github.com/clonn/socket-server https://github.com/clonn/comet-todo-list Saturday, April 19, 14
https://gist.github.com/4049817 https://github.com/clonn/socket-server https://github.com/clonn/comet-todo-list Saturday, April 19, 14