Skip to content

Projeto desenvolvido para estudar websockets com Node.js e a biblioteca Socket.IO

Notifications You must be signed in to change notification settings

xLucaspx/node-websockets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevNotes

Projeto desenvolvido para estudar WebSockets com Node.js e a biblioteca Socket.IO. Consiste em uma aplicação onde é possível criar e editar documentos de texto, sendo que as alterações são salvas automaticamente e transmitidas em tempo real para todos os usuários.

Download & deploy

Clone ou baixe o projeto e execute npm i para instalar as dependências;

  • npm run exemplo irá executar uma aplicação simples construída para entender o funcionamento do protocolo WebSockets, que consiste no valor de uma ação fictícia que sobe ou desce aleatoriamente a cada segundo; o valor será o mesmo em todas as janelas abertas. Roda na porta 2000.

  • npm run dev irá subir a aplicação principal (DevNotes) na porta 3000.

Sobre o projeto

Foi desenvolvido seguindo os cursos de WebSockets da Alura. O foco do projeto foi o estudo do protocolo WebSockets, então não foi destinado nenhum esforço especial em estilização ou acessibilidade; este protocolo foi utilizado até para funções como cadastro, login e autenticação de usuários para que fosse possível estudar features e soluções interessantes.

Telas

  • Cadastro: é informado um nome de usuário e uma senha; se o nome de usuário estiver disponível é cadastrado no banco de dados junto com a hash e o sal da senha (scryptSync - modulo crypto do Node.js).

image

  • Login: o usuário informa suas credenciais de acesso e, caso sejam válidas, o login é realizado e um token JWT é gerado, que por sua vez é armazenado nos cookies do navegador. Este token serve para autorizar o acesso do usuário às páginas de documentos e para identificá-lo.

image

  • Home: é onde são mostrados os documentos existentes e também é possível acessá-los ou criar novos documentos.

image

  • Documento: página onde é possível editar texto, que é salvo no banco de dados, e as alterações são trasnmitidas em tempo real para todos os usuários conectados naquela página de documento específica; além disso, há uma lista que mostra todos os usuários conectados naquele documento no momento.

image

Recursos utilizados

  • Implantação do protocolo WebSockets para entender o funcionamento e as principais diferenças com o HTTP;
  • Uso da biblioteca Socket.IO para tratativas de erros, vários tipos emissão de eventos, criação de salas, etc;
  • MongoDB para armazenar usuários e documentos;
  • Uso do módulo crypto do Node.js para criptografar senhas;
  • Geração de JWT e uso dos cookies para autenticação dos usuários, combinado com a aplicação de middlewares do Socket.IO e namespaces;
  • Controle de informações local com uma lista no lado do servidor para gerenciar usuários conectados e socket.data para guardar informações no próprio socket.

About

Projeto desenvolvido para estudar websockets com Node.js e a biblioteca Socket.IO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published