Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« on: January 25, 2013, 05:52:04 am » |
Salve
Vorrei creare una pagina web su un server e vorrei che arduino ricevesse ed inviasse http request al server. Siccome in questa configurazione è un client, può anche ricevere le http request? come?
potete linkarmi uno sketch giusto per farmi un idea di come gestire la ricezione (in modalità client) delle http request?
grazie
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #1 on: January 25, 2013, 05:57:37 am » |
Se sei un client non potrai mai ricevere richieste http, ma solo risposte alle tue richieste.
Eventualmente devi prevedere di utilizzare sia la libreria client che quella server contemporaneamente. I miei test per ora si sono fermati all'avere più tipi di server su arduino (http e telnet) in contemporanea, ma mai client e server insieme.
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #2 on: January 25, 2013, 06:17:33 am » |
Se sei un client non potrai mai ricevere richieste http, ma solo risposte alle tue richieste. Era quello che sospettavo. Quindi se volessi inviare dati ad un server e ricevere (dal server) un comando non potrei farlo. Dovrei avere due arduino: un server e un client. Giusto?
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #3 on: January 25, 2013, 06:28:16 am » |
No, dovresti avere un fw su arduino che fa sia da client che da server. Il server ti ascolta su una porta XX, il client ti invia richiesta ad un URL YYYY. Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch.
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #4 on: January 25, 2013, 06:32:31 am » |
Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch.
Ok, non sapevo che potesse essere entrambe le cose. Ho trovato questo: http://arduino.cc/forum/index.php?topic=90210.0grazie 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 81
Posts: 8184
:(){:|:&};:
|
 |
« Reply #5 on: January 25, 2013, 07:28:51 am » |
nono allora ad ogni richiesta HTTP fatta da arduino, il server risponde con una pagina HTML... quindi la tua risposta la puoi mettere nella pagina HTML!
poi se invece devi inviare un comando da una pagina HTML, il mio consiglio è di usare un javascript che crea un iframe nascosto nella pagina che fa fare al client la get sull'arduino... in questo modo colleghi il client direttamente con l'arduino, una architettura più p2p con i suoi pro e contro
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #6 on: January 25, 2013, 08:56:38 am » |
Non penso che abbia quella necessita lesto. Io ho capito che a lui ha bisogno di comunicazione bidirezionale asincrona tra due entità , e che intendeva comunicare via http. L'unica soluzione è che entrambe le entità siano client e server simultaneamente.
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #7 on: January 25, 2013, 09:09:09 am » |
Io ho capito che a lui ha bisogno di comunicazione bidirezionale asincrona tra due entità , e che intendeva comunicare via http.
esattamente. bidirezionale e asincrono
|
|
|
|
|
Logged
|
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #8 on: January 30, 2013, 04:24:31 am » |
Sono due cose distinte che dovresti poter fare con un arduino solo, semplicemente utilizzando ethernetserver ed ethernetclient contemporaneamente sullo stesso sketch. Pensavo: cosa succede nel momento in cui dal sito invio un comando quando in quel momento arduino è in modalità client e sta inviando un dato al sito? Come posso gestire queste... collisioni? grazie
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 81
Posts: 8184
:(){:|:&};:
|
 |
« Reply #9 on: January 30, 2013, 08:15:37 am » |
è uno sbattimento getito dallo stack ISO/OSI, quindi semplicemente non te ne devi preoccupare, nel caso succeda verrà autogestito tutto
|
|
|
|
|
Logged
|
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #10 on: January 30, 2013, 01:07:36 pm » |
è uno sbattimento getito dallo stack ISO/OSI, quindi semplicemente non te ne devi preoccupare, nel caso succeda verrà autogestito tutto
Interessante. Quindi quando faccio una request da un webservice verso arduino, se quest'ultimo è occupato a fare altre cose (magari proprio una request verso il webservice), viene messa in coda la richiesta finchè arduino non l'ascolta? tutto gestito il tutto dallo stack iso/osi...? Ottimo...
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 81
Posts: 8184
:(){:|:&};:
|
 |
« Reply #11 on: January 30, 2013, 03:50:50 pm » |
è molto più complicata, e non sai quale richiesta sarà messa in coda. Per il resto vai tranquillo. Ovvio che ogni errore aumenta i tempi e dopo un pò di errori in un certo slasso di tempo la connessione va in errore definitivo
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 13
Posts: 2432
|
 |
« Reply #12 on: January 30, 2013, 03:59:50 pm » |
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Naples (IT)
Offline
God Member
Karma: 5
Posts: 710
Andrea E.
|
 |
« Reply #13 on: January 30, 2013, 04:04:24 pm » |
è molto più complicata, e non sai quale richiesta sarà messa in coda. Per il resto vai tranquillo. Ovvio che ogni errore aumenta i tempi e dopo un pò di errori in un certo slasso di tempo la connessione va in errore definitivo
grazie lesto! letto. ma in questo mio post approfondisco l'aspetto collisioni.
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 13
Posts: 2432
|
 |
« Reply #14 on: January 30, 2013, 04:14:00 pm » |
quali collisioni?
nel loop -------------- apri il client trasmetti chiudi -------------- apri il server ascolti se c'e' una richiesta in corso .... rispondi, hai 20 secondi prima che il client vada in timeout chiudi -------------- fine loop
che collisioni vuoi avere?
|
|
|
|
« Last Edit: January 30, 2013, 04:18:20 pm by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
|