Пробная реализация многопользовательского многокомнатного чата.
Чат-сервер строится из слабо связанных компонентов, каждый из которых отвечает за свою задачу: прием и рассылка сообщений; базы данных сообщений, пользователей, комнат, политик доступа; протокол чата; сетевые подключения; механизмы разграничения доступа.
Все запускается и что-то даже работает. Пока что минимум функций, без регистрации, разграничения доступа, перманентного хранения сообщений.
Для сборки требуется сторонняя библиотека:
go get github.com/gorilla/websocket
Запуск:
go run chat.go <файл_настроек.json>
URL по умолчанию: localhost:8080