The cross-browser, cross-device WebSocket API Socket.IO solves differences between browsers to provide a consistent API for real-time applications. It supports bi-directional communication over WebSocket, Flash, AJAX long-polling and other transports. Socket.IO is simple to use, supports older browsers, and adds features like disconnection handling that standard WebSocket does not provide. It has been used successfully in several production applications to handle thousands of simultaneous connections.
An unconventional tutorial to basic socket.io features. Socket.io basic features are explained first of all taking a look directly at the browser (hacker approach) and then taking a look at the documentation (and some code examples).
An unconventional tutorial to basic socket.io features. Socket.io basic features are explained first of all taking a look directly at the browser (hacker approach) and then taking a look at the documentation (and some code examples).
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014Stéphane ESCANDELL
Presentation used as a support for the "Move you NodeJS application on the cloud" session on the DWX 2014.
Contains detailed informations on how to start from a local working application to a fully scalable and highly available one on Microsoft Azure Cloud.
See the Github associated project: https://github.com/brainsonic/AzureJSChat where you can find all source code:
> local branch: the application running on a local machine or a "classic" server
> azure-servicebus: the application "almost ready" for use with Azure Service Bus (will be updated)
> azure-redis: the application fully working on Azure Web Sites synchronizing data through Azure Redis Cache service and Azure Table Storage
Ember and WebSockets. I am writing this because because the more text I write makes the "virality score" on SlideShare go up and I'm all about gamification.
Also, I had to export this to PowerPoint because SlideShare does't supper Keynote. WTF?
Given at YAPC::EU 2012
Dancer + WebSocket + AnyEvent + Twiggy
This in *not* a talk about doing a hello world in Dancer, as there are plenty of it. This is a real-life example of using Dancer to address a problem in an elegant and powerful way
At $job, we have cpan mirrors. We want them to stay a bit behind the real CPAN for stability, but we have a tool to update modules from the real CPAN to our mirrors. Cool.
I wanted to have a web interface to trigger it, and monitor the injection. This problem is not a typical one (blog, wiki, CRUD, etc). Here we have a long running operation that shall happen only one at a time, that generates logs to be displayed, with states that need keeping. In this regard, it's interesting to see how Dancer is versatile enough to address these situations with ease.
This talk details how I did that, the technology I used, and the full source code (which is quite short). I used Dancer + WebSocket + AnyEvent + Twiggy + some other stuff.
This talk doesn't require any particular knowledge beyond basic Perl, and very basic web server understanding.
Building Java and Android apps on the blockchain Conor Svensson
In this talk, I demonstrate how you can integrate JVM applications with the Ethereum blockchain.
I provide an overview of what a blockchain is, how the Ethereum blockchain works, and how you can deploy and interact with smart contracts on Ethereum, all from within the JVM, thanks to web3j.
You’ll also learn about web3j’s usage of ReactiveX’s Observable, and the great enhancements it was able to bring to the library, both internally and externally for its users working with the blockchain.
Asynchronous PHP and Real-time MessagingSteve Rhoades
With every major browser supporting WebSockets, HTML 5 has changed how we handle client to server communications. The high demand for real time client and server messaging has developers flocking away from PHP to languages such as Node.js. In this session we'll explore the libraries and extensions that make Asynchronous PHP possible and analyze the performance differences with Node.js. In addition we'll identify use cases and walk through examples of how Asynchronous PHP can handle everything from WebSockets and Message Queues to MySQL.
What Is Async, How Does It Work, And When Should I Use It?emptysquare
Python’s asynchronous frameworks, like asyncio, Tornado, and Twisted, are increasingly important for writing high-performance web applications. Even if you’re an experienced web programmer, you may lack a rigorous understanding of how these frameworks work and when to use them. Let’s see how asyncio's event loop works, and learn how to efficiently handle very large numbers of concurrent connections.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014Stéphane ESCANDELL
Presentation used as a support for the "Move you NodeJS application on the cloud" session on the DWX 2014.
Contains detailed informations on how to start from a local working application to a fully scalable and highly available one on Microsoft Azure Cloud.
See the Github associated project: https://github.com/brainsonic/AzureJSChat where you can find all source code:
> local branch: the application running on a local machine or a "classic" server
> azure-servicebus: the application "almost ready" for use with Azure Service Bus (will be updated)
> azure-redis: the application fully working on Azure Web Sites synchronizing data through Azure Redis Cache service and Azure Table Storage
Ember and WebSockets. I am writing this because because the more text I write makes the "virality score" on SlideShare go up and I'm all about gamification.
Also, I had to export this to PowerPoint because SlideShare does't supper Keynote. WTF?
Given at YAPC::EU 2012
Dancer + WebSocket + AnyEvent + Twiggy
This in *not* a talk about doing a hello world in Dancer, as there are plenty of it. This is a real-life example of using Dancer to address a problem in an elegant and powerful way
At $job, we have cpan mirrors. We want them to stay a bit behind the real CPAN for stability, but we have a tool to update modules from the real CPAN to our mirrors. Cool.
I wanted to have a web interface to trigger it, and monitor the injection. This problem is not a typical one (blog, wiki, CRUD, etc). Here we have a long running operation that shall happen only one at a time, that generates logs to be displayed, with states that need keeping. In this regard, it's interesting to see how Dancer is versatile enough to address these situations with ease.
This talk details how I did that, the technology I used, and the full source code (which is quite short). I used Dancer + WebSocket + AnyEvent + Twiggy + some other stuff.
This talk doesn't require any particular knowledge beyond basic Perl, and very basic web server understanding.
Building Java and Android apps on the blockchain Conor Svensson
In this talk, I demonstrate how you can integrate JVM applications with the Ethereum blockchain.
I provide an overview of what a blockchain is, how the Ethereum blockchain works, and how you can deploy and interact with smart contracts on Ethereum, all from within the JVM, thanks to web3j.
You’ll also learn about web3j’s usage of ReactiveX’s Observable, and the great enhancements it was able to bring to the library, both internally and externally for its users working with the blockchain.
Asynchronous PHP and Real-time MessagingSteve Rhoades
With every major browser supporting WebSockets, HTML 5 has changed how we handle client to server communications. The high demand for real time client and server messaging has developers flocking away from PHP to languages such as Node.js. In this session we'll explore the libraries and extensions that make Asynchronous PHP possible and analyze the performance differences with Node.js. In addition we'll identify use cases and walk through examples of how Asynchronous PHP can handle everything from WebSockets and Message Queues to MySQL.
What Is Async, How Does It Work, And When Should I Use It?emptysquare
Python’s asynchronous frameworks, like asyncio, Tornado, and Twisted, are increasingly important for writing high-performance web applications. Even if you’re an experienced web programmer, you may lack a rigorous understanding of how these frameworks work and when to use them. Let’s see how asyncio's event loop works, and learn how to efficiently handle very large numbers of concurrent connections.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
Velocity EU 2014 — Offline-first web appsandrewsmatt
The upcoming HTML5 feature known as Service Worker is set to turn the web on its head, enabling websites to run without an internet connection and to load quickly even when the connection is bad.
But with that evolutionary step, web applications need to become more complex, and to handle the fact that their source code may remain on a device for much longer than a single session. Without the safety net of starting fresh every time the user hits a link, considerations such as memory management, data consistency, encapsulation and backwards compatibility now come into play. Front-end developers are suddenly fully-fledged software engineers! The web page is our app platform, and the browser our runtime.
The fastest byte is a byte not sent, so the fastest website is the website that doesn’t need to load anything. Step with me into a world of good hacks, unbeatable performance and smart, multivariate responsiveness, drawn from experience building web apps for the FT and The Economist.
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
These are the original slides from the nodejs talk. I was surprised not find them on slideshare so adding them. The video link is here https://www.youtube.com/watch?v=ztspvPYybIY
Save 10% off ANY FITC event with discount code 'slideshare' - http://www.fitc.ca
OVERVIEW
Node.js is a runtime environment and library for running JavaScript applications outside the browser. Node.js is mostly used to run real-time server applications and shines through its performance using non-blocking I/O and asynchronous events. This talk will introduce you to Node.js by showcasing the environment and its two most popular libraries: express and socket.io.
TARGET AUDIENCE
Beginner web developers
ASSUMED AUDIENCE KNOWLEDGE
Working knowledge of JavaScript and HTML5.
OBJECTIVE
Learn how to build a chat engine using Node.js and WebSockets.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Node.js environment and basics
Node Package Manager overview
Web Framework, express, basics
WebSockets and Socket.io basics
Building a chat engine using Node.js
Monitoring OSGi Applications with the Web ConsoleAdobe
A presentation by senior developer Carsten Ziegeler at the OSGi Community Event / EclipseCon Europe 2013. This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations. For more on this, check out the slides available from Carsten: http://www.slideshare.net/cziegeler.
Monitoring OSGi Applications with the Web ConsoleCarsten Ziegeler
Presentation from the OSGi Community Event / EclipseCon Europe 2013
This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations.
How do you continue to ship 50 times a day, when you're constantly hiring more engineers? How can you continue, when every day you write more tests that need to be run on every commit? This talk will cover how to scale up Continuous Integration and Continuous Deployment infrastracture, for teams as small as a handful of engineers and as large as hundreds of engineers.
Just In Time Scalability Agile Methods To Support Massive Growth PresentationTimothy Fitz
Eric Reis and Chris Hondl's MySQL conference presentation on Just In Time Scalability. http://startuplessonslearned.blogspot.com/2008/09/just-in-time-scalability.html
2. WebSocket
• Ideal transport for realtime web
applications
• TCP for the web
• Bi-directional full-duplex communication
• Firefox 4 (beta), Google Chrome 4, Safari 5
• Draft, evolving protocol under constant
revision/changes.
http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol
3. WebSocket is simple
• Conceived with the idea of simplicity for
the client-side developer and the server
implementor.
• The Socket.IO Node.JS WebSocket server
is ~130 LOC
• Yes, you can implement a scalable HTTP 1.1
server with WebSocket support in 130
LOC in JavaScript.
4. WebSocket is simple
var a = new WebSocket(‘ws://localhost’);
a.onopen = function(){
alert(‘connected’);
}
a.onmessage = function(ev){
alert(ev.data);
}
a.onclose = function(){
alert(‘disconnected’);
}
5. WebSocket AJAX
var a = new WebSocket(‘ws://localhost/w’); var a = new XMLHttpRequest();
a.onopen = function(){ a.onreadystatechange = function(){
alert(‘connected’); if (this.readyState == 4){
a.send(‘hello there’); alert(this.responseText);
} }
a.onmessage = function(ev){ });
alert(ev.data); a.open(‘GET’, ‘/some/url’);
} a.send();
a.onclose = function(){
alert(‘disconnected’);
}
6. WebSocket AJAX
var a = new WebSocket(‘ws://localhost/w’); var a = new XMLHttpRequest();
a.onopen = function(){ a.onreadystatechange = function(){
alert(‘connected’); if (this.readyState == 4){
a.send(‘hello there’); alert(this.responseText);
} }
a.onmessage = function(ev){ });
alert(ev.data); a.open(‘GET’, ‘/some/url’);
} a.send();
a.onclose = function(){
alert(‘disconnected’);
}
• Connection stays open and messages are sent • Connection opens, headers are sent, response is
emitted, connection is closed.
bi-directionally.
• Sends raw data from one point to the other, • GET, POST, PUT, DELETE,PATCH HTTP
commands.
doesn’t know any commands
• Ideal for realtime interactions • Ideal for traditional interactions
• Limited browser support. • Limited browser support
7. How about cross browser support?
To illustrate, let’s look at how people are using
AJAX today
8. How about cross browser support?
jQuery
• API on top of XMLHTTPRequest
$.ajax({ • Solves the differences between browsers,
url: ‘/some/url’, (implements MSXML ActiveX object for IE6)
complete: function(data){
// do something and works on almost every user agent.
}
})
• Makes it even easier to write async requests
• Adds *new features* that the standard doesn’t
support (timeouts, caching, filters, etc)
9. How about cross browser support?
Socket.IO • API on top of WebSocket, Flash, Long Polling
AJAX, Multipart AJAX, Iframes, but looks just like
var a = new io.Socket(); WebSocket.
a.send(‘test’);
.on(‘connect’, function(){
alert(‘connected’);
• Solves the differences between browsers. Works
}) on IE5.5+, Safari 3+, Chrome, FF3+, Opera10,
.on(‘message’, function(msg){ iPhone, iPad, Android, WebOS.
alert(msg);
});
.on(‘disconnect’, function(){ • Adds new features. Disconnection support is
alert(‘disconnected’); more reliable than WebSocket. Message buffering.
});
• Easy to extend without altering any natives. 10kb
compressed.
• The jQuery of WebSocket
10. Socket.IO
• http://socket.io / http://github.com/learnboost/socket.io-node
• Multiple applications deployed to production
• ~1000 github followers (socket.io and socket.io-node)
• 4 of the 7 Node.JS 48-hour coding competition winners use socket.io.
• Rocketpack.fi used socket.io+node.js to build an infrastructure that scales
to 100.000 simultaneous connections for a multiplayer gaming platform
(with a Scala backend for message passing and a sticky load balancer)
• Swarmation.com handles an average of 100 persistent connections while
working on every browser.
11. New in 0.6
• Over 20 bugfixes.
• Bullet-proof disconnection support in the client
(eg: internet disconnection)
• Works behind all proxies
• Works for cross-domain connections
• Easier to deploy
12. What’s next?
• New APIs to ease the streaming of *many* subsequent
messages (making it easier to develop multiplayer games
for example)
• SSL support for all transports (wss and https)
• Distributed automated testing
• NodeStream, a layer on top of Socket.IO and the Express
node.js web framework for creating realtime web apps
with hardly any coding. Will be announced at JSConf.eu 10.