go-pproxit/docs/proto_pt-br.md
Matheus Sampaio Queiroga 2b8ac44d5d
All checks were successful
Test / Test (pull_request) Successful in 20s
Add proto doc
Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
2024-09-30 10:47:02 -03:00

2.1 KiB

Protocolo

  • Client: Está modulo pode usar qual abstração do net.Conn para conectar a um controlador como cliente
  • Servidor/Controlador: a mesma coisa se estabelece para o controlador, basta passar um net.Listener para processar novos clientes
  • As struct's estão serelealizadas em BINARIO com Big-Endian
graph LR
A(Cliente)
    A --> B{Ping}
    B --> |Não necessita do token|C[Pong] --> D(Cliente aguarda novas respostas do Controlador)
    B --> E[SendAuth] -->|Enviar token| G{Verificar token}
    G -->|Ok|C
    G -->|Invalid token - 5 tentativas|E
    G --x|Not exists/Max attempts|H(Fechar conexão)

Cliente

  • O Cliente dever manda um ping iniciamente para receber uma respostas, caso sejá requisitado uma altenticação, re-envia uma resposta para o controlador, o controlador deve apenas aceita as primeiras 5 tentativas de autenticação.
  • O cliente deve sempre está escutando está conexão para processar as struct's.
  • Valores invalidos devem ser ignorados por questão de vazamento de dados ou estouro de memoria.

Servidor/Controlador

  • O servidores devem receber um ping para checar se necessita de autenticação, caso neccesario mande uma respota SendAuth para que o cliente mande a chave de autenticação.
  • Na etapa de autenticação, aceita apenas as primeiras 5 requisições do cliente, depois disso deve ser ENCERRADO a conexão sem possivel explicação para o cliente.
  • O serviço que será implementado devera implementa uma Autenticação e uma forma para aceitar conexões UDP e TCP de forma parecida com o net.Listener, caso ao contrario será ignorado e não será aceito qualquer novos clients desta forma.
  • Quando um cliente desconectar ou de forma inesperada será encaminha para o cliente que a conexão foi encerada.
  • (Rascunho de implementação) O controlador não informarar quando um novo cliente será aceito pelo controlador, apenas enviarar o primeiros bytes recebidos por ele.