Creating a WebSocket server
The WebSocket protocol is a computer communications protocol that provides full-duplex (transmission of data in two directions simultaneously) communication channels over a single TCP connection. The WebSocket protocol is defined in RFC 6455 (https://tools.ietf.org/html/rfc6455) and uses ws:// and wss:// instead of http:// and https://, respectively. Therefore, the client should begin a WebSocket connection by using a URL that starts with ws://.
In this section, we are going to develop a small yet fully functional WebSocket server using the gorilla/websocket (https://github.com/gorilla/websocket) module. The server implements the echo service, which means that it automatically returns the client input back to the client.
The https://pkg.go.dev/golang.org/x/net/websocket package offers another way of developing WebSocket clients and servers. However, based on its documentation, pkg.go.dev/golang.org/x/net/websocket lacks some features and...