Giter Club home page Giter Club logo

chat-backend's Introduction

Chat Backend

Описание

  • Данное приложение это backend однокомнатного чата. Frontend приложение, которое написано на JS доступно по этой ссылке. Которое написано на ReactJS доступно по этой ссылке.

Функциональность

  • Авторизация в чате. И получение случайного имени и случайного изображения в качестве аватара. Случайное имя состоит из прилагательного и существительного. Список возможных слов заранее сформирован. Пример случайного имени: Ежовый Урюпинец. Для случайного изображения используется стороннее API.
  • Отправка / получение сообщений и изображений.
  • Получение информации о пользователе, который отключился от чата.

API

Подключение к чату

  • Все последующие функции необходимо реализовывать на клиенте для взаимодействия с серверной частью. Для подключения к чату необходимо реализовать функцию, которая отправит запрос:
socket.emit('give a name')
  • Для получения данных о новом пользователе чата, необходимо реализовать функцию, которая получит ответ:
socket.on('give a name', (user) => {
  /**
    * Пример ответа: объект - user
    */
  {
    name: Ежовый Урюпинец,
    id: id,
    avatar: ссылка на картинку
  }
})

Получение информации о том, что другой пользователь подключился/отключился

  • Для получения данных о том, что подключился новый пользователь необходимо реализовать данную функцию:
socket.on('add new user', (user) => {
  /**
    * Пример ответа: объект - user
    */
  {
    name: Ежовый Урюпинец,
    id: id,
    avatar: ссылка на картинку
  }
})
  • Для получения данных о том, что пользователь отключился необходимо реализовать данную функцию:
socket.on('remove user', (id) => {
  /**
    * Пример ответа: строка - id  
    */
})

Отправка сообщения

  • Для отправки сообщения необходимо реализовать функцию, которая отправит запрос:
socket.emit('chat message', {
  message: Текст сообщения
  imageFile: пустая строка или картинка в формате base64
})

Получение сообщения

  • Для получения сообщения от любого пользователя, в том числе и от самого отправителя, необходимо реализовать функцию, которая принимает ответ:
socket.on('message for all', (message) => {
  /**
    * Пример ответа: объект - message
    */
  {
    name: Ежовый Урюпинец,
    id: id,
    avatar: ссылка на картинку
    message: Текст сообщения,
    imageFile: пустая строка или картинка в формате base64
  }
})

Запуск приложения

  1. npm i
  2. npm run start
  • Не забудьте запустить frontend часть. Приложение, которое написано на JS доступно по этой ссылке. Которое написано на ReactJS доступно по этой ссылке.

chat-backend's People

Contributors

tyt34 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.