Cand ma aflam intr-o fabrica fara acces la Internet, de plictiseala si in doua zile, am facut un mic server de centralizare mesaje log cu suport de web si conectare prin protocol websockets. Programul este menit sa demonstreze ca solutia este viabila si ca tehnologiile folosite (python, bottlepy, tcpip, threading, html, js si websokets) sunt compatibile. Programul poate fi gasit pe github in domeniul public - https://github.com/icoman/Log-Server-Websockets
Protocolul WebSocket a devenit un standard in 2011 si permite browserelor de web sa primeasca date de la server in mod continuu printr-o conexiune permanenta si bidirectionala cu serverul de web.
Serverul de web este compus din doua servere: serverul de web, desigur, pe portul 8080, si serverul de loguri, rulat intr-un thread (TcpipTaskServer), pe portul 7000:
Mesajele de tip log pot fi vizualizate prin interfata web:
Exemplu de program scris in python care trimite loguri catre server:
import logclient
import time
client = logclient.LogClient("localhost","7000")
client.log("Client1 start.","Debug","#FF0000")
time.sleep(1)
client.log("Client1 end.","Debug","#FF0000")
Sau un alt exemplu mai complex:
import logclient
import time
client = logclient.LogClient("localhost","7000")
client.log("Client2 start.","Info","#FF0000")
for i in range(3):
message = "Client2 i={}".format(i)
client.log(message, "Info","#000000")
time.sleep(1)
client.log("Client2 end.","Info","#FF0000")