# WebSocket para o PM
# Pré Requisitos
# Windows
- Baixe e instale a última versão do GIT nesse link (opens new window).
- Baixe e instale o Node nesse link (opens new window) a partir do Windows Installer.
# Linux
- Instale o GIT seguindo esse Tutorial (opens new window).
- Instale o node através dos comandos:
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
- Abra o GitLab (opens new window);
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 doCloud9
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.