This repository has been archived by the owner on Nov 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
protocolo.txt
74 lines (49 loc) · 3.25 KB
/
protocolo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
O protocolo que será utilizado é JSON (Java Script Object Notation) (http://www.json.org/)
para comunicação. O padrão foi criado para ser leve e simples e é facilmente implementado
em java por bibliotecas externas.
Algumas mensagens para comunicação entre o cliente e o servidor:
Servidor -> Cliente:
login: envia a mensagem para cifrar o hash do login.
Exemplo: {"login" : "mensagem para hash"}
msg: envia uma mensagem para ser mostrada ao usuário.
Exemplo: {"msg" : "Ocorreu um erro!"}
ok: booleano indicando status da última operação requisitada pelo cliente. true indica sucesso, false falha. Algumas falhas
fecham a conexão com mensagem de erro ao invés de retornar status de falha, por enquanto, apenas a checagem do código no cadastro
retorna status inválido (se o código estiver errado, significando que o cliente deve pedir para o usuário redigitar e enviar novamente
o código). Outras partes devem suportar status de falha, vou mudar aqui quando o servidor for modificado.
fim: indica que a conexão será fechada. Não possui valor definido.
Exemplo: {"fim" : null}
Cliente -> Servidor:
usuario/hash: envia para o servidor o usuário e hash.
Exemplo: {"usuario" : "exemplo", "hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"}
cadastro: valor nulo, indica que deseja-se fazer cadastro e não login.
Exemplo: {"cadastro" : null, "usuario" : "exemplo", "hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"}
Um email será enviado para "[email protected]" com um código de confirmação para ser digitado no aplicativo.
codigo: código enviado por e-mail para o usuário, deve ser mandado ao servidor após pedir novo cadastro.
Recebe como resposta "ok" : true se o código estiver correto, senão "ok" : false.
Exemplo: {"codigo" : 12345}
Se o usuário dará carona:
Cliente -> Servidor:
pontos, placa, lugares: array de pontos de ônibus pelos quais o carro passará, enviada após login, e placa do carro, e número de lugares livres.
Exemplo: {"pontos" : [1, 5, 9, 2], "placa" : "ABC-0123", "lugares" : 3}
proximo: indica que o carro está próximo de um ponto (envia índice da array "pontos", definida acima). Devemos definir uma distância razoável.
Exemplo: {"proximo" : 2}
Usando a array "pontos" como exemplo, {"proximo" : 2} indica que chegamos no ponto 9 (índice dois de [1, 5, 9, 2]).
Será usado para atualizar a posição de quem dá carona no servidor. Ainda será implementado em ambos
Servidor -> Cliente:
parar: envia um ponto onde haverá alguém esperando carona.
Exemplo: {"parar" : 3}
Se o usuário receberá carona:
Cliente -> Servidor:
inicio, fim: ponto de início e fim do trajeto, enviados após login.
Exemplo: {inicio : 1, fim : 0}
Servidor -> Cliente:
placa: placa de quem dará carona (para identificar o carro).
Exemplo: {placa : "ABC-0123"}
chegando: valor nulo, indica que o motorista está chegando.
Exemplo: {"chegando" : null}
Cada objeto pode conter mais que uma mensagem, como:
{"msg" : "Erro de comunicação", "fim" : null}
Ideias futuras (serão implementadas se sobrar tempo):
-Usar GPS para localizar posição de quem dá carona e cancelar a carona caso quem deseja receber deixe o ponto de ônibus.
Chaves "chegando" e "proximo" são baixa prioridade para terminar o projeto.