-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservidor.py
70 lines (48 loc) · 1.77 KB
/
servidor.py
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
# ====== Inicialização do servidor =======
import web
import json
urls = (
'/(.*)', 'pyServer'
)
app = web.application(urls, globals())
# ============== Variáveis ===============
app.uiData = None # Inicializa uma variável global sem valor
app.RPiData = {
"connected": False,
"dados": None
}
app.RPiConnection = 0
app.timeout = 30
# ===== Classe de Serviço e funções ======
class pyServer:
def GET(self, name):
# As duas próximas linhas servem para garantir que qualquer cliente pode acessar o servidor
web.header('Access-Control-Allow-Origin', '*')
web.header('Access-Control-Allow-Credentials', 'true')
entrada = web.input() # recebe os dados enviados pelo cliente
print(entrada)
if entrada["usuario"] == 'ui':
if app.RPiConnection >= app.timeout:
app.RPiData["connected"] = False
return json.dumps(app.RPiData)
elif entrada["usuario"] == 'RPi':
return json.dumps(app.uiData)
def POST(self, name):
# As duas próximas linhas servem para garantir que qualquer cliente pode acessar o servidor
web.header('Access-Control-Allow-Origin', '*')
web.header('Access-Control-Allow-Credentials', 'true')
dados = json.loads(web.data().decode('utf-8'))
if dados["usuario"] == 'ui':
del dados["usuario"]
app.RPiConnection += 1
app.uiData = dados
return None
elif dados["usuario"] == 'RPi':
del dados["usuario"]
app.RPiConnection = 0
app.RPiData["dados"] = dados
app.RPiData["connected"] = True
return None
if __name__ == '__main__':
app.run()
# ================= Funções ===================