Pages: 1 ... 11 12 [13]   Go Down
Author Topic: Websocket [ci siamo quasi]  (Read 10236 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10440
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

paoloP hai ragione! però NON usa l'IP ma il numero di socket... Quindi bisogna fare molta attenzione a quando un socket si disconnette
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Segnalo questa pull request che però è stata inserita solo in parte nella attuale versione in sviluppo.
Peccato... le funzioni remoteIP e remotePort sono interessanti
--> https://github.com/ntruchsess/Arduino-1/commit/ca37de4ba4ecbdb941f14ac1fe7dd40f3008af75
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Genova
Offline Offline
Faraday Member
**
Karma: 37
Posts: 3240
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rieccomi ... ho ripreso dopo 9 mesi circa il progetto socket che avevo interrotto poichè senza funzionalità sugli smartphone non sapevo che farmene, avevo perso lo stimolo di continuare  smiley-sweat
Ricaricando i vecchi sketch e testandoli su android ora girano, mentre prima ottenevo "funzione socket non supportata" ora funziona bene, le nuove versioni lo hanno implementato.
Bene per un minuto circa  smiley-roll-blue, poi l'eccessiva velocità del traffico la velocità di visualizzazione va diminuendo fino a inchiodare gli smartphone, cosa che su pc non accade (dovrei risolvere riducendo o eliminando i char memorizzati sul textbox presente sull' htm).
Considerando che un anno fa avevo aumentato la velocità del micro 2560 del 50% la cosa mi lascia perplesso visto che ora ho librerie del core originali, il problema più grosso però è che delle 3000 e più  righe di sketch, le modifiche sulle librerie w5100, ethernet, client, server e il core di arduino che avevo fatto non le comprendo più.
Comunque quello che volevo dire è che ora ... [dico a te Lesto ahahahahahha] possiamo riprendere l'argomento  smiley-grin smiley-grin ... il mio IP è sempre quello di un anno fa, tieniti pronto per i test  smiley-grin smiley-grin.....

ciao ciao
 
« Last Edit: April 14, 2014, 04:51:15 pm by pablos » Logged

no comment

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10440
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

AHAAH bhe sappi che ora so come funziona livello scambio HTTP i websocket. E se non erro le attuali vesioni di Client hanno la possibilità di gestire più client contemporanemente. e che obbligare le persone ad usre gli script è una cattivera bella e buona, ma per te la faccio xD

ps. un link moolto interessante se ti butti nell'html: http://caniuse.com/websockets
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Genova
Offline Offline
Faraday Member
**
Karma: 37
Posts: 3240
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 Grazie per il link molto interessante smiley
Ma il problema non era lato client era su arduino, lo script che va messo sull'html per aprire la connessione tipo websocket sono meno di 10 righe mi sembra di averlo messo post indietro.
Per quanto riguarda le connessioni multiple per un micro così piccolo è assurdo quindi ho deciso di limitarlo a solo 1 connessione max, risolvo anche il problema autenticazione digest, nessun altro si può connettere se un client è connesso. Al massimo posso creare un codice master che tramite una request sulla 80 può disconnettere l'utente connesso sul sock 1 e prendere io il comando, ma questi sono dettagli che portano via tempo e voglia.
sock 0 su porta 80 [load pagine html]
sock 1 su porta 9990  [scambio dati websocket]
sock 2 su porta 8888 [server NTP]
sock 3 chiuso

Se tu intendi realizzare una rete lan tra arduini che comunicano tra loro tramite websocket senza caricare pagine html  ... bhe è tutta un altra faccenda che si potrebbe vedere.
Qui bisogna valutare cosa vogliamo fare di definitivo con questo sistema  smiley-lol
ciao
« Last Edit: April 15, 2014, 03:32:49 am by pablos » Logged

no comment

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10440
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, chiariscimi cosa vuoi fare.

Non troppo tempo fa ho rilasciatyo un parser HTTP, che dato una serie di char in inpu (richiesta del browser) estrae URI richiesto, QueryString e post data, cosa che nessun webserver arduino fa che io sappia.

In oltre visto che NON prendo in input un Socket ma direttamente i char, sono agnostico da chi li produce (volendo potresti usare un browser via seriale, se ti garba), infine visto che NON mi occupo di inviare la risposta, non ho nemmeno il peso del codice necessario alla SD

http://forum.arduino.cc/index.php?topic=214652.0
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Genova
Offline Offline
Faraday Member
**
Karma: 37
Posts: 3240
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
chiariscimi cosa vuoi fare.
Niente di particolare, ho solo comunicato che è stato implementato l'"ambaradan"  smiley-lol anche sugli smartphone. A me serviva vedere arduino da browser in real-time e non in modalità polling che spreca risorse, per me l'obbiettivo è raggiunto, era diventata solo una questione d'onore ahahahahahahha  
Se hai qualche idea di impiego e migliore d'utilizzo di questo protocollo proponi pure, pare comunque che l'argomento interessi poco .... è stato letto 7700 volte, ma nessuno ha partecipato attivamente tranne (si può dire) noi 2.

Quote
Non troppo tempo fa ho rilasciato un parser HTTP ... cosa che nessun webserver arduino fa che io sappia
per visualizzare la request è sufficiente stampare il classico char c = client.read(); che troviamo in tutti gli esempi, una libreria che fa il parsing  l'abbiamo sempre avuta è la tinywebserver.cpp che +/- fa quello che hai fatto tu distingue il GET-POST-PUT il tipo di file richiesto  HTM-TXT-CSS-XML-JS-GIF-JPG-PNG-ICO-MP3 preparando la risposta adeguata, il DELETE mi manca però smiley
Senza quella lib non sarei arrivato a fare un websoket con download e upload di file sulla SD, tra le atre cose è l'unica che mi ha chiarito quale è il problema di instabilità della ethernet shield .... questo Ovidiu Predescu's aveva le idee chiare smiley

Quote
volendo potresti usare un browser via seriale
che intendi?

ciao




« Last Edit: April 15, 2014, 08:48:52 am by pablos » Logged

no comment

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10440
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no, la tinty NON estare i dati di POST e di QueryString;
se io faccio

Code:
ipArduino?dato1=asd&dato2=dsa

e se invece invio una post i dati sono "nascosti" nel body.

la tiny li tira fuori? l'ultima volta che ho guardato no.  smiley-mr-green
In realtà le lib fano due cose diverse: la tiny nasce per servire pagine STATICHE da SD, la mia lib per ANALIZZARE le richieste. La generazione del contenuto è a carico dell'utente, che può generare la risposta dinamicamente al 100% oppure usare una SD

Se studi il protocollo REST scopri che la risposta deve essere un riassunto di ciò che hai fatto in base alla richiesta, formattata in XML o in Json; ciò vuol dire una creazione della risposta completamente dinamica, senza hoverhead dell'html. Infatti il rest PURO non è utilizzabile da browser (che tra l'altro non supportano PUT e DELETE), ma si usa il JS o degli applicativi ad-hoc.

Quote
che intendi?

che dato che la mia lib accetta char in input al parser, è completamente scolleta dalla classe Socket... per esempio, vuoi un webserver via xbee(che usa la seriale)? puoi farlo.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Genova
Offline Offline
Faraday Member
**
Karma: 37
Posts: 3240
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
no, la tinty NON estare i dati di POST e di QueryString
Se spedisco "pincopallino" con metodo post alla libreria tiny e arduino risponde alla stringa riconoscendola, sei ancora dell'idea che non può estrarli? smiley

ciao
« Last Edit: May 02, 2014, 11:43:06 am by pablos » Logged

no comment

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10440
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

yep, ho visto e creando un handler ad hoc puoi giocare con i dati post, ma rimane il problema delle query string.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 ... 11 12 [13]   Go Up
Jump to: