Gestione ricezione dati da socket e polling

k-it

Utente Attivo
14 Ott 2009
30
0
0
Ciao
sto facendo un sistema (già abbozzato) in cui un client si collega al server e questo gli manda in continuo polling e un stringa con lo stato di alcuni sensori di una macchina.
La gestione socket sembra funzionare:
-ricevo i dati, li elaboro, li invio
Il problema è come gestire al meglio i dati che mi arrivano dovrei:
1) Visualizzare i dati ricevuti sotto forma grafica aggiornandoli di continuo (se lo faccio nella stessa pagina al momento mi ricrea ogni volta la tabella dove visualizzo i dati, pensavo di inviarli ad una finestra popup che si aggiorna ogni secondo)
2) Permettere l'iterazione come chiusura connessione, invio stringa al server per attivare o meno un sensore.
3) Invio risposta al polling (ack)
Non so bene, soprattutto, come far riaggiornare in continuazione la pagina (o parte di pagina) dove visualizzo i sensori (arriva stringa, visualizza stato in base ai valori contenuti nella stringa)
Ogni idea è ben accetta!
Grazieeee
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Per riaggiornare la pagina puoi scegliere tra varie opzioni:

Se ti interessa aggiornare solo una quota parte della pagina conviene AJAX
viceversa se vuoi aggionrare la pagina intera è sufficiente utilizzare il tag di html del refrehs della pagina:
PHP:
<meta http-equiv="refresh" content="600">

Ciao
Ciro
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
lotus, guarda che se non sbaglio l'header refresh prende come contenuto il numero di secondi dopo i quali si aggiorna la pagina. Con il tuo esempio si aggiorna ogni 600 secondi...

Comunque potresti anche aprire un popup che poi aggiorni e di cui modifichi i dati con Javascript, ma non è semplicissimo.
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Alessandro, il mio è un esempio, 600 è il primo valore che ho
pensato...è ovvio che l'attributo va valorizzato in base alle esigenze...
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
Per riaggiornare la pagina puoi scegliere tra varie opzioni:

Se ti interessa aggiornare solo una quota parte della pagina conviene AJAX
viceversa se vuoi aggionrare la pagina intera è sufficiente utilizzare il tag di html del refrehs della pagina:
PHP:
<meta http-equiv="refresh" content="600">

Ciao
Ciro

Non so cosa mi permette di fare ajax perchè non lo conosco ma se mi dici che mi può aiutare in questo me lo studio un po'
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
lotus, guarda che se non sbaglio l'header refresh prende come contenuto il numero di secondi dopo i quali si aggiorna la pagina. Con il tuo esempio si aggiorna ogni 600 secondi...

Comunque potresti anche aprire un popup che poi aggiorni e di cui modifichi i dati con Javascript, ma non è semplicissimo.

In effetti ho fatto così ma non mi funziona molto bene, ho messo la parte javascript nel ciclo ma la finestra popup si aggiorna solo ogni tanto (ho contato all'incirca 35 secondi) mentre le informazioni via socket e quindi il ciclo arriva ogni secondo (avendo messo una sleep(1) sul server)
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Hai provato ad usare il metodo che ha suggerito lotus con valore 1 nella finestra pop-up che viene aperta? Dovrebbe aggiornartela regolarmente ogni secondo, no? L'unico problema è che diventa illeggibile, quindi ti consiglio di impostare 5-6 secondi.
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
Hai provato ad usare il metodo che ha suggerito lotus con valore 1 nella finestra pop-up che viene aperta? Dovrebbe aggiornartela regolarmente ogni secondo, no? L'unico problema è che diventa illeggibile, quindi ti consiglio di impostare 5-6 secondi.

Così però non risolvo perchè nella finestra madre ho un ciclo che ogni secondo riapre la stessa finestra quindi aggiornandola, quindi è inutile aggiornare quella di popup.Se aggiornassi quella dovrei allora avere un posto dove appoggiare i dati, ad esempio alla finestra madre glieli faccio scrivere nel database e il popup li leggi ogni secondo aggiornando, come dice lotus, la finestra.
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Come dice giustamente alessandro puoi utilizzare il cookies.

Ma di che mole di dati parliamo?

La soluzione dei cookies è praticabile purchè i dati siano pochi..

Quanti dati vengono gestiti?
Scusami non potresti gestire tramite db o xml?
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
Come dice giustamente alessandro puoi utilizzare il cookies.

Ma di che mole di dati parliamo?

La soluzione dei cookies è praticabile purchè i dati siano pochi..

Quanti dati vengono gestiti?
Scusami non potresti gestire tramite db o xml?

Ho usato il database, scrivo li quello che mi arriva e lo leggo dove mi serve.
Una domanda: ho in una pagina il client che con un ciclo while controlla sempre nel canale i dati da leggere e li invia al database, come faccio a fermare il ciclo e chiudere la connessione da parte client?
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
Immagino che tu utilizzi le funzioni della famiglia fsockopen per gestire il socket, quindi puoi usare fclose come se fosse un normale file di testo.

Si la funzione per chiudere la conosco ma non trovo il modo per farla partire, cioè dovrei mandare un comando da parte del server che fa uscire dal while ma se la voglio chiudere dalla parte del client? non mi viene l'idea di quale condizione usare nel while per farlo uscire controllandolo da client
 

k-it

Utente Attivo
14 Ott 2009
30
0
0
Che tu la chiuda dal client oppure dal server ha poca importanza, in ogni caso la connessione viene interrotta, non so se mi spiego. Oppure ho capito male io?

si si quello lo so, il problema che ho è il modo in cui farlo chiudere al client perchè il client è bloccato in un ciclo while(true) che legge in continuazione quello che gli arriva dal canale, dovrei mettere una condizione nel while che quando si verifica esce dal ciclo e chiudo la connessione.Potrei farlo facendo inviare un comando da parte del server, ad esempio una stringa con scritto "exit" ricevuta quella il client chiude, ma il mio problema è se volessi che fosse il client a decidere quando chiudere la connessione non so che condizione mettere nel while.
Ad esempio mi servirebbe che al clic di un pulsante su una finestra potessi chiudere la connessione, ma non so se si possa fare
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Gestione array multidimensionale PHP 6
andreas88 Gestione Profilo OnlyFans Leggi, Normative e Fisco 0
A Creazione cookie e gestione accessi PHP 0
B form gestione input PHP 2
sbolde91 Consiglio gestione Hosting Hosting 2
E Gestione profilo utente tramite Form PHP 3
S cerco esperto gestione ecommerce Offerte e Richieste di Lavoro e/o Collaborazione 0
P Curiosità su grandi aziende e la gestione delle grafiche. Discussioni Varie 1
M Consiglio sulla gestione di Gerarchie Database 0
A attributo "min" per input gestione date PHP 8
L Gestione DB ASP.NET 2
L Consiglio SEO gestione dominio + free hosting SEO e Posizionamento 6
avalon95 [WordPress] Gestione database annunci WordPress 0
G [PHP] gestione mouse PHP 2
B Gestione Prenotazioni con Mysql Database 21
D CREAZIONE E GESTIONE SITO E-COMMERCE Offerte e Richieste di Lavoro e/o Collaborazione 2
P (Cerco) Collaboratori per gestione social media Offerte e Richieste di Lavoro e/o Collaborazione 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
brasoft2019 [PHP] Sistema di gestione presenze PHP 29
W Preventivo gestione ecommerce Discussioni Varie 1
E Cerco partner / socio per gestione sito di annunci incontri Offerte e Richieste di Lavoro e/o Collaborazione 0
K e-commerce per distribuzione e dettaglio con gestione magazzino E-Commerce 0
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
Jonn [WordPress] Gestione categorie e tags per sito eventi WordPress 2
felino Gestione dispositivi e Altri dispositivi Windows e Software 4
D Software per gestione account facebook? Social Media Marketing 1
D Cero Software Facebook gestione account Vendere e Acquistare pubblicita' online 0
M Offro servizio Incremento Follower e Gestione Profili Istagram Offerte e Richieste di Lavoro e/o Collaborazione 0
S elementi statistici - Matrice e Gestione Array PHP o Javascript Javascript 0
J [offro] hosting / installazione certificati ssl / gestione server Offerte e Richieste di Lavoro e/o Collaborazione 0
F [PHP] gestione meteo manuale per un gioco di ruolo PHP 1
bianca_dimulescu Gestione tabella e MySQL PHP 4
T Servizio gestione pagina Instagram Offerte e Richieste di Lavoro e/o Collaborazione 0
G Gestione e/o vendita hosting come libero professionista Leggi, Normative e Fisco 4
MatMac System [PHP] Gestione dinamica select-option PHP 3
xone [Vendo] Script gestionale php-mysql gestione pratiche Altri Annunci 0
S [PHP] Gestione coupon PHP 3
lxella [PHP] Aree riservate e gestione utenti PHP 1
D Gestione punteggi php PHP 1
B Cercasi socio per gestione sito web Offerte e Richieste di Lavoro e/o Collaborazione 0
G gestione pagina facebook Social Media Marketing 0
Cavalinho08 [Offro gestione pagine instagram, prezzo bassissimo] Annunci servizi di Social Media Marketing 3
D [VENDO] Gestione account instagram Annunci servizi di Social Media Marketing 2
N [VENDO] Gestione pagine FB Annunci servizi di Social Media Marketing 2
ientii [PHP] Gestione CheckBox PHP 1
W Consiglio su gestione di un form con XMLHttpRequest Ajax 0
booklisa Compressione immagini e gestione media CMS (Content Management System) 1
T gestione livelli sessioni php msqli PHP 1
giuseppe_123 [PHP] Gestione corsi PHP 1
A [WordPress] Plugin gestione ordine prodotto. WordPress 0

Discussioni simili