Real-time communication with websockets
WebSockets are a modern browser feature that make it easier and more efficient to work with real-time streaming data, without the hackiness of long-polling HTTP connections.
For this project, we'll use WebSockets to run a bot from Slack. Who doesn't love chatbots? This example might seem slightly contrived, in that a Clojure bot might be easier to deploy and run, but there are a few legitimate uses for this such as, creating a specialized Slack UI or piping user communication from your website into Slack. Another advantage of using Slack here means we won't have to set up the server side of this real-time chat client.
You'll need to set up a Slack (slack.com) account if you don't have one already, but it's free.
Understanding the websocket protocol
WebSockets are a separate protocol from HTTP; they too happen to run on TCP port 80
. WebSockets provide bidirectional messages with lower overhead than HTTP-based hacks, such as long polling or Bidirectional...