Socket io. For those who want to learn how to harness real-time communication on the web. With Cluster, redis, & React
What you'll learn:
- Socketio. That's (mostly) all we cover so when you finish, you'll know it!
- Setup a socketio application between the browser and an Express server and run real-time back and forth
- Understand the basics of websockets and how they work
- The basics of the transport layer and how a packet works
Websockets are one of the coolest things to hit the web in ages. They allow the browser real-time communication bridging one of the last gaps in both human and web-based communication. Socket io is the king library that uses websockets under the hood. There's a good chance if you're reading this, you've heard about socket io. Maybe even done a tutorial on it. But how far did you get? In my experience, the vast majority of the material on the web goes no farther than a quick-start, instant chat app.You don't learn how anything works, never look at the docs, and are stuck at the end wondering what to do now.The remaining shred of material is waaaaay over everyone's head. The fact that the websocket APIwas standardized in 2011 and most developers still don't know how to use it is evidence of the gap.
I first used socket.IO in 2013 for a tiny company directory app. I've been following since and have been frustrated that it hasn't gotten more mainstream notice because it opens the way for so many improvements to existing applications and obvious groundwork for new ones. Let's change that :)Prepare to for a detailed look at socketio and websockets and start going real-time.
Environment Setup (skip if you have node installed already)
Before Socket.IO... - TCP, network sockets, &a native websockets app
Socketi.IO 101 - Why you'd want to use socketio and how it works (simple chat app)
Socket.IO 201 - Making the chat app into a slack clone with namespaces and rooms
Project 1 - real-time canvas game
Project 2 - Real-time performance data(uses React, Cluster, and Redis)
streaming videos & socket.io-stream - in development
Supplemental - HTTP (for those in need of a review)