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.
npm install -g socketstream
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
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
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:
- 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
- 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.
- SocketStream (November 2013): On Slideshare and SpeakerDeck.
- SocketStream (July 2015): On SpeakerDeck.
(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
Checkout the documentation here.
Owner: Henrik Vendelbo
Original Creator: Owen Barnes
Core Contributors:
- Paul Jensen
- Roman Minkin
- Robert Hall
- Joshua Cullick
- Twitter: @socketstream
- Chat: Gitter
SocketStream is released under the MIT license.