Salve a tutti,
io dovrei comunicare con dei dispositivi per il rilievo di consumi elettrici, questi sono gestiti da un gateway che ha un proprio IP ed attraverso una richiesta http con basic auth e url opportunamente settato posso richiedere dati che mi ritornano in formato JSON. attualmente utilizzo PostMan (un'app per google chrome) per inviare queste richieste con "query" di questo tipo:
http://IPdellaCentralina/CLIENT/SerialedelDispositivo/?cmd1="cmd1"&cmd2="cmd2"..ecc...
Io dovrei "emulare" PostMan e richiedere i dati e visualizzarli ogni tot secondi (senza refresh) in una mia pagina su un mio server.
Il problema è che una "chiamata" ajax/json deve provenire dallo stesso dominio/IP mentre la mia pagina è su un dominio e i dispositivi su un'altro. Per ovviare avevo trovato qualcosa in merito a JsonP, ma i dispositivi non lo supportano (non hanno la callback) e non posso modificare il firmware.
Ho già postato il problema nella sezione Javascript (http://forum.html.it/forum/showthrea...readid=2907830) e mi è stata suggerita questa soluzione:
Io ho la mia pagina (per es info_disp.php/html) che vedo dal browser che visualizza i dati del dispositivo con cui devo comunicare...questa pagina al caricamento e poi ogni tot secondi effettua una richiesta asincrona (ajax) ,per non dover fare il refresh della pagina.
La pagina che riceve la richiesta si chiama ad esempio "json_requester.php" ed è sullo stesso server su cui è la pag info_disp.
JsonRequester.php deve efettuare la "richiesta" dati al dispositivo (su ip esterno) nell'header della richiesta devo inserire user e pass per la basic autentication, url esterno a cui mandare la richiesta.
Questo per bypassare il limite di "dominio" imposto dal browser lo faccio lato server, quindi non con JS Jquery? come lo mando in solo php?
in Postman come inserisco user e pass per la basic auth e confermo vedo nel repilogo la password cifrata in qualche modo. che algoritmo di cifratura utilizza? lo fa in auto o devo dargielo io già cifrato?
ammesso che riesca a fare questo mi viene restituito dal dispositivo un oggetto Json che io posso, usando jsondecode, "parsificare" per php oppure restituirlo così com'è alla pag iniziale info_disp.php?
se per caso qualcosa nella richiesta non va a buon fine devo (dalla pag JsonRequester.php) controllare se l'errore è nell' header http (es 404) oppure se nel Json viene restituito qualche messaggio anomalo (es kokokokoko oppure {error code 154: the client does not respond} o altro) per analizzare questo errore da php devo usare jsondecode questo metodo in caso l'oggetto json restituito non sia in formato json che fa? restituisce comunque la Stringa o si limita a dare formato non supportato?
a seconda dell' errore devo asp un tot di tempo e rifare la richiesta con basic auth se l'errore si ripete 3 volte lascio perdere e restituisco errore alla pag iniziale info_disp.php
Vi riangrazio in anticipo per l'aiuto.