websocketchat

Форк
0

2 месяца назад
2 месяца назад
2 месяца назад
README.md

Чат на вебсокетах с фронтендом

Состав проекта


backend

Здесь хранится серверная часть проекта, то есть сами функции с вебсокетами, загрузка данных, запись данных..


backend/server

  • file_operations.go

В этом файле проходят такие операции как сохранить сообщение (в JSON), загружать сообщения оттуда, сохранять и загружать юзеров.... Функции: - SaveMessage(message Message) error - LoadMessages() (MessageHistory, error) - SaveUsers(users UserList) error - LoadUsers() (UserList, error)

  • models.go

В этом файле хранятся всякие структуры или значения переменных для будущего использования в др.файлах - Структуры: - Client - User - UserList - Message - MessageHistory

  • server.go

В этом файле основное - вебсокеты. Здесь логика соединения между клиентами Функции: - HandleConnection(w http.ResponseWriter, r *http.Request) - Обрабатывает подключение клиента, отправляет сообщения и управляет состоянием клиента.

  • server.old

Этот файл нам не пригодится. Это старая версия server.go, я ее сохранил на всякий

backend/main.go

Здесь логика запуска сервера ws.

frontend


frontend/public

В public есть такие директории как css, html, js. В них по 2 файла для работы с двумя страницами - index.html и chat.html

Почему разные html страницы?

Предназначение разное. Index.html я использую для присвоения никнейма клиенту, а chat.html соответсвенно для чата.

frontend/package(-lock).json

Это конфигурационные файлы для запуска фронтенда.

frontend/server.js

Соответсвенно доп конфиг для запуска фронтенда, сборки и тд


Методы запуска

go run main.go и npm start(не очень удобно)

Довольно интересный способ, но новичкам не очень подходит. Посмотрим на start.sh:

Запуск через start.sh(очень удобно)

Скрипт start.sh предназначен для одновременного запуска сервера и фронтенда. Удобство в том, что скрипт запускает одновременно две команды, что облегчает задачу. Убедитесь, что скрипт имеет права на выполнение:

chmod +x start.sh
./start.sh

Прим вам могут показаться эти способы похожими, и вы будете правы, но только start.sh выполняет сразу 2 команды без ожидания пока не прервется одна из команд. На первое время способ с start.sh очень хорош.

Описание

Чат на вебсокетах

Языки

Go

  • CSS
  • HTML
  • JavaScript
  • Shell
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.