Italian Risposta dal server Http

Lello1964

Well-Known Member
Licensed User
Longtime User
Chi mi trova il problema ?

 
Posta un esempio, nel pomeriggio lo guardo.
 
Call sub probabilmente non viene chiamata perché non esiste nel modulo di servizio. Prova a creare una sub con quel nome (RispostaHttp)
Seconda cosa se metti un wait for all'interno dell'Hendle va al livello superiore quindi come se chiude e prosegue avanti prosegue avanti, non credo sia una buona idea. Credo che invece tu volessi mantenere in attesa.

Comunque ho dato uno sguardo superficiale, dopo gli do un occhiata migliore
 
Se lo provi in debug (il server), vedrai che la call sub viene chiamata correttamente e la sequenza si ferma, il problema è che senza debuggare, comunque il client riceve un risposta vuota.
Se invece del wait for utilizzi una sub che ferma il tutto, ad esempio mettendo uno sleep(6000), il tutto funziona.
Io ho bisogno di fermare dopo il POST, fare delle verifiche e dare l'esito al client.

Ho fatto una marea di prove, ma credo sia un problema della libreria.
 
Comunque io non richiamo la callsub, ma utilizzo RispostaHttp nel wait per fermare il tutto, quando si preme il bottone Button1, viene chiuso il wait for RispostaHttp.
 
Se provi mettendo il punto di intettuzione sul wait for RisposytaHttp del servizio ServerHttp, vedrai che si ferma e attende, poi premi il bottone Button1 (click) sul server, viene chiamata la callsub, la procedura prosegue e invia la risposta con response.SendString, ma il tutto era già concluso in quanto il cient ha ricevuto già una stringa vuota.


????
 
Comunque io non richiamo la callsub, ma utilizzo RispostaHttp nel wait per fermare il tutto, quando si preme il bottone Button1, viene chiuso il wait for RispostaHttp.
I Debug le cose avvengono più lentamente, il release è un altra cosa.
Se usi websocket è meglio, cosi la connessione rimane aperta. E la risposta la mandi direttamente dal bottone usando la variabile che è dichiarata all'interno del servizio e non dall'Handle del servizio.
Ma ricevi una sola richiesta a volta?
Hai il tempo di dare l'ok col bottone per ogni richiesta?
 
Se provi mettendo il punto di intettuzione sul wait for RisposytaHttp del servizio ServerHttp, vedrai che si ferma e attende, poi premi il bottone Button1 (click) sul server, viene chiamata la callsub, la procedura prosegue e invia la risposta con response.SendString, ma il tutto era già concluso in quanto il cient ha ricevuto già una stringa vuota.


????
E' una soluzione arrangiata, che vuoi ottenere di preciso?
 
Ho bisogno che il client riceva una riposta da una sub, ma non riesco a evitare che il client abbia una risposta vuota.
 
Da una sub o da un bottone?
Da una sub è facile da un bottone è complicato.
La sub risponde in tempi ristretti, il button non lo fa e nel frattempo la connessione si perde, quindi era più adatto il websocket
 
Da una sub statica funziona, ma se deve attendere un risultato da un evento esterno, non ci riesco.
 
In pratica, tu mi fai la richiesta di incassare, devo verificare che la cosa sia possibile e ti do l'ok.
Con il TCIP e in seriale tutto ok, ma con HTTP Server non trovo il modo.
 
In pratica, tu mi fai la richiesta di incassare, devo verificare che la cosa sia possibile e ti do l'ok.
Con il TCIP e in seriale tutto ok, ma con HTTP Server non trovo il modo.
Si ho capito. O fai il webSocket oppure direttamente ti costruisci il server.
Prendi un esempio di server di chat per B4A e lo modifichi. Quelli tengono la connessione aperta continuamente.
 
htttpserver, appena ricevuto il GET o POST, manda la risposta e disconnette il client che dovrà frare una successiva richiesta GET o POST per ricollegarsi.
Mentre websocker o usando porte in ascolto (come in una chat)la connessione rimane aperta finché tu non la chiudi.
 
Vedi questo.

Comunque fare un server da zero in B4A non è complicatissimo
 
Erel dice :

There is no server side implementation of WebSockets for B4A.

I recommend you to use MQTT instead.

 
Erel dice :

There is no server side implementation of WebSockets for B4A.

I recommend you to use MQTT instead.

Non esiste un implementazione di websocket server in b4a, ma non è che non si può fare.
 
Back
Top