Вы находитесь на странице: 1из 53

Socket.

IO
Present & Future

Saturday, February 12, 2011


Present

Saturday, February 12, 2011


io.community()

Saturday, February 12, 2011


1000 project followers

Saturday, February 12, 2011


1000 project followers

178 forks

Saturday, February 12, 2011


1000 project followers

178 forks

47 pull requests

Saturday, February 12, 2011


1000 project followers

178 forks

47 pull requests

80k website visitors

Saturday, February 12, 2011


1000 project followers

178 forks

47 pull requests

80k website visitors

550 mailing list members

Saturday, February 12, 2011


io.ecosystem()

Saturday, February 12, 2011


Push-It

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux.

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC.

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary.

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream HTML synchronization.

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream HTML synchronization. (learnboost/nodestream)

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream HTML synchronization. (learnboost/nodestream)

{cool name}

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream HTML synchronization. (learnboost/nodestream)

{cool name} {80+ projects}

Saturday, February 12, 2011


Push-It Pub/sub, best parts of bayeux. (aaronblohowiak/Push-It)

DNode Object-oriented RPC. (substack/dnode)

Juggernaut Pub/sub, proprietary. (maccman/juggernaut)

Nodestream HTML synchronization. (learnboost/nodestream)

{cool name} {80+ projects} (github)

Saturday, February 12, 2011


Different approaches...

Saturday, February 12, 2011


Different approaches...

... suit different applications.

Saturday, February 12, 2011


Future

Saturday, February 12, 2011


One socket is cool.

Saturday, February 12, 2011


One socket is cool.

But you know what’s


cooler?

Saturday, February 12, 2011


>1 socket.

Saturday, February 12, 2011


new io.Socket(‘localhost’)

Saturday, February 12, 2011


new io.Socket(‘localhost’)

Works well for one purpose.

Saturday, February 12, 2011


new io.Socket(‘localhost’)

Works well for one purpose.

Things become complex for more than one

Saturday, February 12, 2011


new io.Socket(‘localhost’)

Works well for one purpose.

Things become complex for more than one

{ type: ‘chat’, data: {} }


{ type: ‘feed’, data: {} }

Saturday, February 12, 2011


new io.Socket(‘localhost’)

Works well for one purpose.

Things become complex for more than one

{ type: ‘chat’, data: {} } // you need to roll out your own


protocol. Eg: JSON packets
{ type: ‘feed’, data: {} }

Saturday, February 12, 2011


How about...

Saturday, February 12, 2011


How about...

new io.Socket(‘localhost’, ‘/dnode’)

Saturday, February 12, 2011


How about...

new io.Socket(‘localhost’, ‘/dnode’)

.on(‘connect’, fn)
.on(‘message’, fn)
.on(‘disconnect’, fn)

Saturday, February 12, 2011


How about...

new io.Socket(‘localhost’, ‘/dnode’)

.on(‘connect’, fn)
.on(‘message’, fn)
.on(‘disconnect’, fn)

new io.Socket(‘localhost’, ‘/pubsub’)

Saturday, February 12, 2011


How about...

new io.Socket(‘localhost’, ‘/dnode’)

.on(‘connect’, fn)
.on(‘message’, fn)
.on(‘disconnect’, fn)

new io.Socket(‘localhost’, ‘/pubsub’)

.on(‘connect’, fn)
.on(‘message’, fn)
.on(‘disconnect’, fn)

Saturday, February 12, 2011


BOOOOOOOOOM!

Saturday, February 12, 2011


One process is cool.

Saturday, February 12, 2011


One process is cool.

But you know what’s


cooler?

Saturday, February 12, 2011


>1 process.

Saturday, February 12, 2011


// server side socket.io listener
var iosocket = io.listen(https.createServer());

Today Future

Saturday, February 12, 2011


// server side socket.io listener
var iosocket = io.listen(https.createServer());

Today Future

iosocket.clients // {}

Saturday, February 12, 2011


// server side socket.io listener
var iosocket = io.listen(https.createServer());

Today Future

iosocket.clients // {} iosocket.clients(fn)

Saturday, February 12, 2011


// server side socket.io listener
var iosocket = io.listen(https.createServer());

Today Future

iosocket.clients // {} iosocket.clients(fn)

iosocket.clients[sessid].send
// writes immediately

Saturday, February 12, 2011


// server side socket.io listener
var iosocket = io.listen(https.createServer());

Today Future

iosocket.clients // {} iosocket.clients(fn)

iosocket.clients[sessid].send iosockets
// writes immediately .client(sessid)
.send(msg)
// writes to a centralized
// message dispatcher

Saturday, February 12, 2011


Redis is cool.

But you know what’s


cooler?

Saturday, February 12, 2011


Nedis

Saturday, February 12, 2011


Nedis
Redis implementation on Node.JS by TJ

Saturday, February 12, 2011


Nedis
Redis implementation on Node.JS by TJ

No compilation required.

Saturday, February 12, 2011


Nedis
Redis implementation on Node.JS by TJ

No compilation required.

Swappable.

Saturday, February 12, 2011

Вам также может понравиться