The "chat problem" shows up several kinds of problematics, such communications one-to-one, one-to-many (channels), many-to-many (rooms), which solution can be applied in several different environments. Two of the main approaches are websockets and the XMPP protocol, which obviously can be implemented with Go, taking advantage of its features such as the concurrency model. Let's see it!