# WebSocket para o PM

# Pré Requisitos

# Windows


# Linux


sudo apt update
sudo apt install nodejs

Verifique se foi instalado corretamente com o comando abaixo. A saída deverá te mostrar a versão corrente do node.

$ node -v
v18.12.1

Dica

Existem inúmeros tutoriais e soluções de problemas sobre GIT e Node no google. Uma breve pesquisa poderá te ajudar, se for o caso 😃

# Chave SSH

# Gerando a chave


Abra um terminal e execute o comando abaixo, informando seu email Teknisa (o mesmo utilizado para logar no PM):

ssh-keygen -t rsa -C "seu.email@teknisa.com"

Obtenha a chave pública que foi gerada e será utilizada para comunicação com o git a partir do comando:

Linux:

cat ~/.ssh/id_rsa.pub

Windows:

type %userprofile%\.ssh\id_rsa.pub

Atenção

Em algumas máquinas, o usuário que está executando o cmd pode não ser o usuário logado, como as máquinas locais da Teknisa, por exemplo. Nesse caso, o comando acima não retornará sua chave. Sendo assim, verifique na mensagem de geração da chave onde ela está localizada.

# Adicionando no perfil


GitLab

Dica

Caso abra o link e não esteja logado, realize a autenticação via LDAP com seu usuário de rede (o mesmo da VPN).

  • Cole sua chave pública no campo Key;
  • O campo Title já será preenchido automaticamente, como no anterior;
  • Deixe o campo Expiration date sem valor;
  • Insira o registro clicando em Add key.

# Clonando o projeto


  • Solicite acesso ao grupo Zeedhi no GitLab para o setor de Qualidade, caso ainda não possua.
  • Em um terminal localizado na pasta onde deseja clonar o WebSocket, execute o comando:
git clone git@gitlab.teknisa.com:zeedhi/project-management-cli.git

Dica

Caso sua chave SSH tiver sido gerada nesse momento, você provavelmente receberá um questionamento de marcá-la para usar sempre sem exigir usuário e senha. Basta apenas informar yes e, a partir daí, todos seus comandos git irão funcionar normalmente.


Agora, para que o PM consiga comunicar com seu dispositivo, abra o arquivo config.json, localizado na raiz do projeto recém clonado e informe seu email Teknisa no valor da propriedade email, como no exemplo abaixo:

{
	"email": "seu.email@teknisa.com",
	"server": "ws://ws.zeedhi.com",
	"workfolder": "",
	"path": "/.",

	"windowsService": "",
	"commandReset": "",

	"waitTime": "",
	"logExpirationDay": "",
	"waitTimeProcess": "",
	"watcherLog": "",
	"clientLog": "logs/ws.log"
}

Nota

Não há a necessidade de preencher as demais propriedades, mantenha os valores padrões.

# Executando o WebSocket


Linux:

Em um terminal localizado na pasta do projeto, execute o comando abaixo e deixe-o rodando:

./startup.sh

Windows:

Abra o diretório do projeto e execute o arquivo startup.bat.

Dica

É possível utilizar o terminal do Git Bash (instalado juntamente com o git) para executar o startup.sh em ambientes Windows.


A execução do startup.sh já atualiza o projeto, caso necessário. A saída esperada é algo semelhante ao exemplo abaixo:

---> Salvando sua configuração de email...
Saved working directory and index state WIP on stable: e5d9b32 update startup.sh

---> Atualizando o projeto...
From gitlab.teknisa.com:zeedhi/project-management-cli
 * branch            stable     -> FETCH_HEAD
Already up to date.

---> Retornando sua configuração de email...
On branch stable
Your branch is up to date with 'origin/stable'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   config.json

no changes added to commit (use "git add" and/or "git commit -a")

---> Conectando o WebSocket...
WebSocket Client Connected
Message:  {
  event: 'loginNode',
  room: 'seu.email@teknisa.com',
  data: { email: 'seu.email@teknisa.com', key: 'you can create!' }
}
Login accomplished with success!

Se você chegou até aqui com seu email Teknisa aparecendo nas linhas finais do log, seu ambiente está pronto para uso 👍

# Múltiplos WebSockets


É possível utilizar o WebSocket em vários ambientes, mas não simultaneamente. Máquina pessoal + Cloud9 ou Máquina pessoal + WSL são exemplos práticos desse uso. Para isso, você deverá:

  • Seguir esse tutorial de instalação do WebSocket em todos os ambientes que deseja utilizar;
  • Manter em execução apenas um ambiente, ou seja, caso for trabalhar na Máquina pessoal, pare a execução do Cloud9 e vice-versa.

Atenção

Só pode existir um único processo de Websocket rodando, seja no mesmo ambiente ou em ambientes diferentes. Mais de um processo em execução ao mesmo tempo poderá gerar inúmeros erros. Caso for executar em background, garanta que o processo seja encerrado antes de iniciar em outro ambiente.

# FAQ

# Processo rodando no PM e nunca termina
  • Verifique se seu WebSocket está rodando. Caso estiver, pare o processo e inicie novamente o startup.
# Startup roda mas não atualiza o projeto
  • Verifique se sua VPN está ativa;
  • Verifique se seu usuário tem acesso ao projeto no GitLab.
# WebSocket conectado mas o PM diz que não está rodando
  • Verifique se a configuração de email no config.json do projeto está correta, com seu email Teknisa, mesmo utilizado para autenticar no PM.
# Erro de index.lock no PM
  • O processo do WebSocket está rodando duas ou mais vezes ao mesmo tempo em seu ambiente. Encontre os processos, pare todos e execute novamente o startup.