Chapter 1. Chat Application with Web Sockets
Go is great for writing high-performance, concurrent server applications and tools, and the Web is the perfect medium over which to deliver them. It would be difficult these days to find a gadget that is not web-enabled and this allows us to build a single application that targets almost all platforms and devices.
Our first project will be a web-based chat application that allows multiple users to have a real-time conversation right in their web browser. Idiomatic Go applications are often composed of many packages, which are organized by having code in different folders, and this is also true of the Go standard library. We will start by building a simple web server using the net/http
package, which will serve the HTML files. We will then go on to add support for web sockets through which our messages will flow.
In languages such as C#, Java, or Node.js, complex threading code and clever use of locks need to be employed in order to keep all...