socketstream
v0.5.3
Published
A framework for Realtime Web Apps
Downloads
30
Readme
SocketStream
Introduction
SocketStream is a framework for Realtime Web Apps
Latest release: 0.5.3 unstable (view changelog)
For existing SocketStream installations you may want to remain on 0.4.5
for a while. It is the most backwards compatible
and robust and well covered by tests. It should be ready for production.
The coming releases will see a lot of changes to accommodate new transport options modern browsers and mobile apps. The API will remain largely the same, but there are bound to be some changes.
Installation
npm install -g socketstream
Usage
socketstream new <your_app_name>
cd <your_app_name>
npm install
npm start
Then open a web browser at localhost:3000:
open http://localhost:3000
Upgrade from 0.3 or 0.4 to 0.5
To make SocketStream more stable some major dependencies have been moved out. Please add these modules to package.json
.
- socketstream-cookie-session: 0.5.x
- engine.io: 1.5.2
- engine.io-client: 1.5.2
- redis: 0.12.1
- connect: 3.4.0
Why SocketStream?
The Real-Time web has been touted for years, and it is very much in use. However there remains a number of challenges that have not been solved. Web Sockets will remain an important technology for delivering a live experience on your website or mobile app. However with HTTP/2 and WebRTC other options come into play. SocketStream will help you to mix and match depending on what you aim to build.
It gives you tools to manage your project:
- Providing a sensible place to put everything
- Accelerating deployment with integrated asset packing and CDN support
- Production Deployment skeleton
- Good debugging output
Integration points:
- Accelerating development with Live Reload and (optional) support for Stylus, Jade, and other transpilers.
- Add-ons can be dropped in without configuration needed picking between Cookie and Token based auth.
Easy progression from REST
A good REST API will remain the right solution for many scenarios. Web pages will remain based on HTTP. Streaming is pixie dust sprinkled on top. SocketStream will be refactored to support a gradual addition on pixie dust keeping the REST structure as the central point.
Batteries included:
- Dependencies are peer, so you pick the versions you want to use.
- Built-in CommonJS bundler (ES6 on-the-way)
- Built in formatter integration for: Sass, LESS, Stylus, Jade, Hogan
- Built in template engine integration for: HTML5, React, Angular, jQuery
- Built in transport integration for: Socket.io and SockJS
- Examples
Building a simple chat app that uses websockets is easy, but rich, non-trivial, responsive realtime UI without ending up with a mess of code is hard SocketStream eases the pain by:
How to
- Base the application on Connect and Engine io
- Base the application on Express and SockJS
- Make a minimal application like SocketStream 0.3
- Serve HTTP resources and pages
- Choosing the right Streaming Protocol
Applications using SocketStream
- Dashku: Realtime dashboards and widgets using HTML, CSS and JavaScript. Also hosted at dashku.com.
- SketchDeck: An app for designing great slide decks from sketches, also a Y Combinator tech startup.
- Hollow: An interactive, emmy-nominated documentary.
- Bitjoy: Realtime Bitcoin prices and news.
- Teeleader: A booking engine for Golf courses.
Presentations
- SocketStream (November 2013): On Slideshare and SpeakerDeck.
- SocketStream (July 2015): On SpeakerDeck.
Videos
(most recent at end)
- KrtConf.com, Portland, November 2011
- LNUG.org, London, May 2012
- LXJS, Lisbon, September 2012
- RealtimeConf, Portland, October 2012
- QCon, San Francisco, November 2012
- RealtimeConf EU, Lyon, April 2013
Documentation
Checkout the documentation here.
Team
Owner: Henrik Vendelbo
Original Creator: Owen Barnes
Core Contributors:
- Paul Jensen
- Roman Minkin
- Robert Hall
- Joshua Cullick
Contact
- Twitter: @socketstream
- Chat: Gitter
License
SocketStream is released under the MIT license.