Dev Breakthroughs
68.9K views | +0 today
Follow
Dev Breakthroughs
Monitoring innovations in database, PHP, JS, RIA, HTML5, mobile and agile dev strategies & tools
Curated by Nicolas Weil
Your new post is loading...
Your new post is loading...
Scooped by Nicolas Weil
Scoop.it!

WebRTC Data Channels vs WebSockets

WebRTC Data Channels vs WebSockets | Dev Breakthroughs | Scoop.it

Signaling between client end points has always been an important facet for most interactive web applications. The use cases range from text chatting to multiplayer games to driving a robot remotely. In the world of HTML5, most developers establish signaling through websockets, long polling and server side events. However with the advent of WebRTC, data channels joined the ranks and the question posed by many developers is “Where do data channels fit in the equation?”

No comment yet.
Suggested by Jos Dirksen
Scoop.it!

Record audio using webrtc in chrome and speech recognition with websockets

Record audio using webrtc in chrome and speech recognition with websockets | Dev Breakthroughs | Scoop.it

There are many different web api standards that are turning the web browser into a complete application platform. With websockets we get nice asynchronous communication, various standards allow us access to sensors in laptops and mobile devices and we can even determine how full the battery is. One of the standards I'm really interested in is webrtc. With webrtc we can get real-time audio and video communication between browsers without needing plugins or additional tools. A couple of months ago I wrote about how you can use webrtc to access the webcam and use it for face recognition. At that time, none of the browser allowed you to access the microphone. A couple of months later though, and both the developer version of firefox and developer version of chrome, allow you to access the microphone!

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Bridge : RPC Messaging Server that makes it easy to build smarter decoupled architectures for your cross-language services & applications.

Bridge : RPC Messaging Server that makes it easy to build smarter decoupled architectures for your cross-language services & applications. | Dev Breakthroughs | Scoop.it

Polyglot programming made easy :

Write each component in the language best suited for the job. Reuse open source components from any language in your stack. Communicate easily and efficiently with native RPC bindings in many languages.

 

Bidirectional client-server and server-server communication :

Bridge was designed for both client-server and server-server interactivity, with bidirectional communication to any client front-end applications (browser, mobile, desktop) and any server applications using WebSocket and TCP connections.

 

Secure communication with clients and external services :

With a simple private/public key model for access control, Bridge allows you to securely expose endpoints.

 

Efficient binary data serialization :

Using messagepack for binary serialization, you can efficiently transmit files and data structures.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

sipml5 - The world's first HTML5 SIP client

sipml5 - The world's first HTML5 SIP client | Dev Breakthroughs | Scoop.it

This is the world's first open source HTML5 SIP client (May 12, 2012) entirely written in javascript for integration in social networks (FaceBook, Twitter, Google+), online games, e-commerce sites... No extension, plugin or gateway is needed. The media stack rely on WebRTC.

 

The client can be used to connect to any SIP or IMS network from your preferred browser to make and receive audio/video calls and instant messages.

 

The protocol parsers (SIP, SDP...) are highly optimized using Ragel lookup tables and is suitable for embedded systems with limited memory and low computing power.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

HTML5 Real-Time and Connectivity

These are the slides from Peter Lubbers's "HTML5 Real-Time and Connectivity" presentation at the 2012 San Francisco HTML5 User Group (http://sfhtml5.org).

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Introducing SocketRocket: A WebSocket library for Objective-C

At Square, we devote two weeks a year to fix annoying problems that are outside the scope of our normal jobs. We call them Fix-it weeks. During our last Fix-it week, we wanted to fix network debugging tools for iOS. Well, we made it happen. The plan was to talk to Chrome’s remote debugging API which just happened to be a JSON protocol over WebSockets. There were no up-to-date (hybi-17 at the time) WebSocket client libraries for iOS at the time. So we wrote one.


It’s called SocketRocket. It’s a WebSocket client written in modern Objective-C. It conforms to RFC 6455, the latest WebSocket specification. It supports wss since the connection is based off of CFStream (bridged to NSStream).

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Creating a real-time multiplayer game with WebSockets and Node.js

Creating a real-time multiplayer game with WebSockets and Node.js | Dev Breakthroughs | Scoop.it

This past weekend I had the pleasure of putting on workshop at the Mozilla Festival in London. During the workshop I explained exactly how to take a single player HTML5 game and turn it into a multiplayer one using Node.js and WebSockets.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

What are good resources for learning HTML 5 WebSockets?

What are good resources for learning HTML 5 WebSockets? | Dev Breakthroughs | Scoop.it

WebSockets is a technology providing for bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It is designed to be implemented in web browsers and web servers but it can be used by any client or server application. The WebSocket API is being standardized by the W3C and the WebSocket protocol is being standardized by the IETF. Since ordinary TCP connections to ports other than 80 are frequently blocked by administrators outside of home environments it can be used as a way to overcome these restrictions and provide similar functionality with some additional protocol overhead while multiplexing several WebSocket services over a single TCP port.


This page gathers all the best resources pointers on the topic (inlcuding a list of existing WebSocket servers) ...

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Making HTML5 WebSockets Work

Making HTML5 WebSockets Work | Dev Breakthroughs | Scoop.it

Back in March of 2009, I wrote an article entitled Comet Programming: Using Ajax to Simulate Server Push. Comet is a Web application model that enables web servers to send data to the client without having to explicitly request it. Both polling and long polling Comet techniques can be emulated using Ajax. In polling, the client asks for updates at a set interval; in long polling, a client-initiated connection is held open by the server until it has data to send over. In both cases, these hacks are detrimental to server bandwidth and performance.

 

Only WebSockets provide truly bi-directional and simultaneous data flow, allowing for server push and pulls over a single TCP socket. It is the most technically challenging HTML5 feature to implement, but for truly interactive websites, it's a technology well worth learning. In today's article I'm going to point out some of the most notable caveats that may hamper you in your quest to master WebSockets.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Cube : open-source system for visualizing time series data, built on MongoDB, Node and D3

Cube : open-source system for visualizing time series data, built on MongoDB, Node and D3 | Dev Breakthroughs | Scoop.it

Cube is an open-source system for visualizing time series data, built on MongoDB, Node and D3. If you send Cube timestamped events (with optional structured data), you can easily build realtime visualizations of aggregate metrics for internal dashboards.

 

Cube speaks WebSockets for low-latency, asynchronous input and output: new events are streamed in, and requested metrics are streamed out as they are computed. (You can also POST events to Cube, if that’s your thing, and collectd integration is included!) Metrics are cached in capped collections, and simple reductions such as sum and max use pyramidal aggregation to improve performance. Visualizations are generated client-side and assembled into dashboards with a few mouse clicks.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Websockets load-balancing with HAProxy

Websockets load-balancing with HAProxy | Dev Breakthroughs | Scoop.it
HTTP protocol is connection-less and only the client can request information from a server. In any case, a server can contact a client… HTTP is purely half-duplex. Furthermore, a server can answer only one time to a client request.

Some websites or web applications require the server to update client from time to time. There were a few ways to do so:
- the client request the server at a regular interval to check if there is a new information available
- the client send a request to the server and the server answers as soon as he has an information to provide to the client (also known as long time polling)

But those methods have many drawbacks due to HTTP limitation.
So a new protocol has been designed: websockets, which allows a 2 ways communication (full duplex) between a client and a server, over a single TCP connection. Furthermore, websockets re-use the HTTP connection it was initialized on, which means it uses the standard TCP port.
No comment yet.
Scooped by Nicolas Weil
Scoop.it!

WebRTC is almost here, and it will change the web

WebRTC is almost here, and it will change the web | Dev Breakthroughs | Scoop.it

Web Real-Time Communication (WebRTC) is a new HTML5 standard framework that enables the sharing of video, audio, and data directly between web browsers. These capabilities open the door to a new wave of advanced web applications.


If all goes according to plan, over 50% of all web browsers will support this capability in the next three to four months.


This is the most significant step forward in web browser connectivity since 2004, when Google launched Gmail and AJAX was coined.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Implementing Video Conferencing in HTML5

Implementing Video Conferencing in HTML5 | Dev Breakthroughs | Scoop.it

Here is a guide from @silviapfeiffer to Plugin-free video conferencing in the browser!

 

Websocket server code: http://ow.ly/b5yF7

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Face Detection using HTML5, Javascript, Webrtc, Websockets, Jetty and OpenCV

Face Detection using HTML5, Javascript, Webrtc, Websockets, Jetty and OpenCV | Dev Breakthroughs | Scoop.it

Through HTML5 and the corresponding standards, modern browsers get more standarized features with every release. Most people have heard of websockets that allows you to easily setup a two way communication channel with a server, but one of the specifications that hasn't been getting much coverage is the webrtc specificiation.

 

With the webrtc specification it will become easier to create pure HTML/Javascript real-time video/audio related applications where you can access a user's microphone or webcam and share this data with other peers on the internet. For instance you can create video conferencing software that doesn't require a plugin, create a baby monitor using your mobile phone or more easily facilitate webcasts. All using cross-browser features without the use of a single plugin.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

HTML5 Web Sockets: A Quantum Leap in Scalability for the Web

HTML5 Web Sockets: A Quantum Leap in Scalability for the Web | Dev Breakthroughs | Scoop.it

Lately there has been a lot of buzz around HTML5 Web Sockets, which defines a full-duplex communication channel that operates through a single socket over the Web. HTML5 Web Sockets is not just another incremental enhancement to conventional HTTP communications; it represents a colossal advance, especially for real-time, event-driven web applications.


HTML5 Web Sockets provides such a dramatic improvement from the old, convoluted "hacks" that are used to simulate a full-duplex connection in a browser that it prompted Google's Ian Hickson—the HTML5 specification lead—to say:

"Reducing kilobytes of data to 2 bytes…and reducing latency from 150ms to 50ms is far more than marginal. In fact, these two factors alone are enough to make Web Sockets seriously interesting to Google."


Let's take a look at how HTML5 Web Sockets can offer such an incredibly dramatic reduction of unnecessary network traffic and latency by comparing it to conventional solutions.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

WebSockets in PhoneGap Projects

I'm a big fan of the WebSockets API for all the real-time goodness it offers, but the iOS platform doesn't (currently) bake the WebSockets API in to mobile Safari. That sucks, particularly because I can enjoy making iOS native apps using awesome frameworks like PhoneGap. However, because I'm using PhoneGap, I can create a PhoneGap plugin that introduces WebSockets to my HTML & JavaScript. So that's what I did.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

libwebsockets – HTML5 Websocket server library in C

libwebsockets – HTML5 Websocket server library in C | Dev Breakthroughs | Scoop.it

libwebsockets (in git at http://git.warmcat.com/cgi-bin/cgit/libwebsockets/ ) is a lightweight GPL2 http and websocket server that hides all the protocol handshakes and detail from the user code driving the server.


Because it supports file serving on http, it is able to provide a single listening socket that can serve your html script page normally and then when the browser starts running your script, come back and make websocket connections to the same port.

No comment yet.
Scooped by Nicolas Weil
Scoop.it!

Getting Real-Time with Pusher

Getting Real-Time with Pusher | Dev Breakthroughs | Scoop.it

Do you want to spice up your web applications by making them real-time — but don’t want to create new infrastructures for the sole purpose of getting web sockets to work? In this article, we’ll explore how to use and implement Pusher, an HTML5 WebSocket-powered real-time messaging service for your applications.

No comment yet.