Two-Project Series

WebSocket-based Chat Backend in Go you own this product

basic Go, Javascript, HTML, CSS, and understanding of WebSockets
skills learned
creating a WebSocket server • using map as an in-memory store • uploading files to an object storage service
Amit Saha
2 weeks · 8-12 hours per week average · BEGINNER
filed under
get all Manning content with a subscription
includes 2 liveProjects
liveProject $29.99 $39.99 self-paced learning

In this series of liveProjects, you’ll use the Go programming language to build the backend for a customer support chat feature. The features of the Go programming language and its rich ecosystem allow you to create a highly scalable backend application out of the box.

Stepping into the shoes of a software engineer at an analytics company, you’ll implement an application that allows for real-time, two-way interaction between your clients and a customer service team. You’ll learn to use the Go standard library packages and a community-maintained package called Gorilla WebSocket to build an HTTP web application that supports communication over WebSockets. You will transmit and process binary data over a WebSocket connection and upload files to an object storage service. You will also use the library to write cloud-agnostic application code.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

liveProject mentor Natan Streppel shares what he likes about the Manning liveProject platform.

here's what's included

Project 1 Create a WebSocket Server

In this liveProject, you’ll create the backend for a company support live chat feature using the WebSockets framework. This backend will form the foundation of a new customer service for your company. You’ll implement a backend that can receive requests from browsers and set up WebSocket connections between customers and support personnel. You’ll even preserve the chat histories.

In this video, Natan Streppel, a software engineer and frequent Manning partner, explains what he likes about this liveProject.

Project 2 Implement File Sharing

In this liveProject, you’ll create advanced functionality for a chat application, allowing users to upload files during a text chat. You’ll use the WebSockets framework to receive requests from browsers and set up WebSocket connections that let customer support teams chat with customers. Challenges include implementing the file upload support, and writing tests to ensure the end-to-end functionality is high-quality and bug-free.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan


only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free eBook every time you renew
  • choose twelve free eBooks per year
  • exclusive 50% discount on all purchases
  • WebSocket-based Chat Backend in Go eBook for free

project author

Amit Saha

Amit Saha is a software engineer at Atlassian in Sydney, Australia. He’s the author of Practical Go: Building Scalable Network and Non-Network Applications (Wiley, 2021), Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (No Starch Press, 2015), and Write Your First Program (PHI Learning, 2013). His other writings have been published in technical magazines, conference proceedings, and research journals. He can be found online at


This liveProject is for Go programmers who are comfortable with the language’s basics. To begin this liveProject, you will need to be familiar with the following:

  • Basic Go
  • Basic Javascript, HTML, and CSS

you will learn

In this liveProject series, you’ll learn to use both the standard library packages and a community-maintained package called Gorilla WebSocket to build the chat app backend. You’ll also embed HTML/JavaScript/CSS files into your application and create an HTTP server that will serve these files. You’ll upload files to the backend over a WebSocket connection, and ensure functionality through testing.

  • Create a WebSocket server
  • Create a WebSocket command line client
  • Use map as an in-memory store
  • Upload files to an object storage service
  • Use the library to write cloud-agnostic application code
  • Verify functionality using tests


You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.