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

 Cannot retrieve latest commit at this time.

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