Skip to content

Licoler/Websocket-example

Repository files navigation

Websocket Example

Этот проект — современный Express.js backend с аутентификацией, CRUD для постов и онлайн-чатом через Socket.IO.

Что нового

  • Добавлен WebSocket чат на базе Socket.IO.
  • Чат открывается только после успешной регистрации или входа.
  • Пользователь запоминается в localStorage и при повторном входе сразу возвращается в чат.
  • Реализован экран регистрация/логин в виде двух вкладок.
  • После выхода данные очищаются и снова показывается форма регистрации.

Как это работает

  1. Откройте приложение: http://localhost:3000.
  2. Сначала показывается экран регистрации.
  3. Если аккаунт уже есть, нажмите «Войти».
  4. После успешной регистрации или логина открывается чат.
  5. В чате можно отправлять сообщения, и они показываются всем подключенным пользователям.
  6. Выйти из чата можно кнопкой logout, тогда будет показан экран регистрации.

Структура проекта

Websocket-example/
├── middleware/
│   └── auth.js
├── models/
│   ├── User.js
│   └── Post.js
├── routes/
│   ├── auth.js
│   └── posts.js
├── services/
│   ├── userService.js
│   └── postService.js
├── public/
│   ├── index.html
│   └── script.js
├── api-docs.md
├── index.js
├── package.json
└── README.md

Установка

npm install

Запуск

npm run dev

Сервер будет доступен по адресу http://localhost:3000.

Интерфейс

Откройте http://localhost:3000 в браузере для управления регистрацией, логином и чатом.

API

Аутентификация

  • POST /auth/register — регистрация.
  • POST /auth/login — логин и получение JWT.

Посты

  • GET /posts — получить все посты.
  • GET /posts/:id — получить пост по ID.
  • POST /posts — создать пост.
  • PUT /posts/:id — обновить пост.
  • DELETE /posts/:id — удалить пост.

WebSocket

  • Сервер использует Socket.IO.
  • Клиент подключается через /socket.io/socket.io.js.
  • Событие отправки: chat message.
  • Данные сообщения: { username, message }.
  • Сервер ретранслирует сообщения всем подключенным клиентам.

Технологии

  • Node.js
  • Express.js
  • MongoDB + Mongoose
  • JWT
  • bcryptjs
  • Socket.IO
  • CORS
  • Фронт знает эндпоинты: Интерфейс и документация предоставлены.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors