Примечание. Меня больше интересует понимание общих концепций/паттернов Go, а не решение этого надуманного примера.
Пакет Go (golang) WebSocket предоставляет тривиальный пример эхо-сервера, который сводится к чему-то нравится:
func EchoServer(ws *websocket.Conn) { io.Copy(ws, ws); }
func main() {
http.Handle("/echo", websocket.Handler(EchoServer));
http.ListenAndServe(":12345", nil);
}
Сервер обрабатывает одновременные соединения, и я пытаюсь обновить его до базового сервера чата, повторяя ввод всем подключенным клиентам.
Как мне предоставить обработчику EchoServer доступ к каждому открытому соединению?