1
Lazarus e il web / Re:Servizio api rest
« Ultimo post da nomorelogic il Oggi alle 11:12:06 am »grazie dell'esempio Mimmo
veramente interessante
nomorelogic
veramente interessante
nomorelogic
Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il Trascinare un file nel programma DB concetti fondamentali e ZeosLib Recuperare codice HTML da pagina web Mandare mail con Lazarus Stabilire il sistema operativo Esempio lista in pascal File INI Codice di attivazione Realizzare programmi multilingua Lavorare con le directory Utilizzare Unità esterne TTreeView TTreeview e Menu Generare controlli RUN-TIME LazReport, PDF ed immagini Intercettare tasti premuti Ampliare Lazarus Lazarus e la crittografia System Tray con Lazarus UIB: Unified Interbase Il file: questo sconosciuto Conferma di chiusura di un applicazione Liste e puntatori Overload di funzioni Funzioni a parametri variabili Proprietà Conversione numerica TImage su Form e Panel Indy gestiore server FTP lato Client PopUpMenu sotto Pulsante (TSpeedButton) Direttiva $macro Toolbar Evidenziare voci TreeView Visualizzare un file Html esterno StatusBar - aggirare l'errore variabile duplicata Da DataSource a Excel Le permutazioni Brute force Indy 10 - Invio email con allegati La gestione degli errori in Lazarus Pascal Script Linux + Zeos + Firebird Dataset virtuale Overload di operatori Lavorare con file in formato JSON con Lazarus Zeos ... dietro le quinte (prima parte) Disporre le finestre in un blocco unico (come Delphi) Aspetto retrò (Cmd Line) Lazarus 1.0 Come interfacciare periferica twain Ubuntu - aggiornare free pascal e lazarus fpcup: installazioni parallele di lazarus e fpc Free Pascal e Lazarus sul Raspberry Pi Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal. Creare un server multithread guida all'installazione di fpc trunk da subversion in linux gentoo Indice DB concetti fondamentali e connessioni standard Advanced Record Syntax DB concetti fondamentali e DBGrid DB concetti fondamentali e TDBEdit, TDBMemo e TDBText Advanced Record Syntax: un esempio pratico Superclasse form base per programmi gestionali (e non) Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form Superclasse form base per programmi gestionali (e non) #4 - wait animation Un dialog per la connessione al database:TfmSimpleDbConnectionDialog Installare lazarus su mac osx sierra immagine docker per lavorare con lazarus e free pascal TDD o Test-Driven Development Cos'è Lazarus da xinyiman Le condizioni da xinyiman Installare Lazarus da xinyiman Il pascal e primo programma da xinyiman Costanti e variabili da xinyiman Input di dati da xinyiman OR/AND da xinyiman Maggiore minore uguale da xinyiman Cicli da xinyiman Assegnazione e confronto da xinyiman Funzioni numeriche da xinyiman Funzioni sui caratteri da xinyiman Numeri casuali da xinyiman I vettori (array) da xinyiman Le matrici da xinyiman Le strutture e gli insiemi da xinyiman Procedure e funzioni da xinyiman File da xinyiman Le librerie da xinyiman Funzioni/procedure ricorsive da xinyiman I puntatori da xinyiman OOP e Classi da xinyiman Installare LAMW su Windows da xinyiman Inserisci il nome utente, la password e la durata della sessione.
|
175 Visitatori,
0 Utenti
1
Lazarus e il web / Re:Servizio api rest« Ultimo post da nomorelogic il Oggi alle 11:12:06 am »grazie dell'esempio Mimmo
veramente interessante nomorelogic 2
Lazarus e il web / Re:Servizio api rest« Ultimo post da Mimmo il Oggi alle 09:43:07 am »Questo è un esempio di un webserver incapsulato dentro un demone. Non è specifico per LazWeb.
L'idea è quella di avere 3 attori: il demone, il webserver (con tutti i suoi bei thread e le sue logiche e che abbia un metodo per essere attivato e un metodo per disattivarsi) e un thread di controllo che farà da ponte tra il demone e il webserver. Devi orchestrare un po' di comunicazioni tra tutti e 3. Il demone è comandato chiaramente da fuori. Possiede un TSimpleEvent che servirà da callback tra lui e il thread di controllo durante la fase di spegnimento. L'istanza dell'evento dovrà essere passata dal demone al costruttore del thread di controllo. Il thread di controllo si salverà il puntatore all'evento/callback del demone e creerà un altro evento (che deve essere esposto) per funzionare da start/stop del thread stesso. Il thread di controllo creerà anche il webserver vero e proprio. Quando il thread di controllo partirà, farà partire anche il webservice e poi si metterà in attesa indefinitamente sull'evento interno. Se il demone dovesse ricevere da fuori (l'utente) il comando di spegnersi, attiverà l'evento del thread di controllo (per svegliarlo) e poi si metterà in attesa sull'evento/callback (in attesa che il thread di controllo abbia ucciso il webserver). Il thread di controllo appena risvegliato chiederà al webserver di chiudersi e poi attiverà l'evento/callback del demone per comunicare che lui ha finito. A questo punto il demone dovrebbe riprendere la propria esecuzione e spegnersi definitivamente. Codice: [Seleziona]
questo lato demone, lato worker/server http: Codice: [Seleziona]
3
Lazarus e il web / Re:Servizio api rest« Ultimo post da angman il Oggi alle 09:20:27 am »Si Mimmo grazie. Credo che mi sarebbe molto utile
4
Lazarus e il web / Re:Servizio api rest« Ultimo post da xinyiman il Oggi alle 09:09:36 am »Mimmo, condividilo comunque, può tornare utile a chi in futuro leggerà la conversazione.
5
Lazarus e il web / Re:Servizio api rest« Ultimo post da Mimmo il Oggi alle 08:47:44 am »probabilmente non mi sono spiegato bene. Quello che vorrei fare è realizzare una applicazione Con LazWeb che risponda alle chiamate su una porta http. Tale applicazione dovrebbe però essere controllata tramite un demone che sia in grado di lanciarla allo start ma anche di chiuderla in modo controllato (attendendo che un eventuale thread interno venga terminato) alla chiusura del demone. Se ti interessasse integrare il webserver dentro il demone, posso fornirti un piccolo esempio. 6
Lazarus e il web / Re:Servizio api rest« Ultimo post da DragoRosso il Oggi alle 08:44:25 am »Sicuramente il suggerimento di @xinyman è il più "pulito".
Però, forse chiudere il processo dal suo "handle" (in Linux ci sono "TProcess" e "Shell" per gestire le applicazioni lanciate) potrebbe essere una ulteriore soluzione. Se per qualsiasi motivo la chiusura tramite richiesta HTTP non avvenisse, ci si ritroverebbe con un blocco insanabile. Quando il demone lancia il processo (la web app) dovrebbe comunque verificare che una ulteriore istanza non stia già girando, anche perchè se no il binding alle porte TCP fallirebbe. E dovrebbe buttare giù l'istanza probabilmente tramite un handle e non tramite HTTP (che potrebbe non avere funzionato precedentemente), per poi riavviare l'applicazione. Sulla chiusura delle applicazioni WEB, in ambito Windows ma anche in quel poco di gestione sperimentale di un servizio cloud "autocostruito" in Linux che ho testato ho riscontrato alcune "ritrosie" alla chiusura delle applicazioni server che lavorano su TCP/IP. Non è certo la normalità, ma se accade anche solo una volta ti blocca tutto se non prendi le contromisure da subito. Oltre questa chiaccherata non posso andare perchè non ho domestichezza con lo sviluppo in Linux. Ciao 7
Lazarus e il web / Re:Servizio api rest« Ultimo post da xinyiman il Oggi alle 08:20:22 am »Concettualmente devi generare un percorso nel server "http application" che vai a creare che butti giù l'applicazione.
Qui spiega come: https://wiki.freepascal.org/fpWeb_Tutorial#Terminating Poi dal demone lanci la chiamata al suddetto URL che si occupa della chiusura. 8
Lazarus e il web / Re:Servizio api rest« Ultimo post da angman il Marzo 30, 2025, 08:30:55 pm »probabilmente non mi sono spiegato bene. Quello che vorrei fare è realizzare una applicazione Con LazWeb che risponda alle chiamate su una porta http. Tale applicazione dovrebbe però essere controllata tramite un demone che sia in grado di lanciarla allo start ma anche di chiuderla in modo controllato (attendendo che un eventuale thread interno venga terminato) alla chiusura del demone.
9
Presentazioni nuovi utenti / Re:Saluti« Ultimo post da tito_livio il Marzo 29, 2025, 10:31:19 pm »Benvenuto!
10
Generale / Re:Strano comportamento di una classe« Ultimo post da SauroTicciati il Marzo 28, 2025, 04:40:29 pm »Grazie,
dopo la prima risposta mi sono messo a cercare sul forum ed in effetti avevo visto che potevo lavorare anche con i record e penso farò così. Interessante l'idea di creare un metodo per risolvere il problema, proverò per spirito di curiosità anche se penso sia più semplice usare il metodo che mi hai consigliato. Ad ogni modo siete tutti gentilissimi e molto competenti sarà un piacere condividere questo spazio. |
Free Pascal per NDS: come scaricare i sorgenti da SVN e ricompilarli da Legolas Impostare Lazarus per l'utilizzo con Freepascal per Nintendo DS da Legolas [0] Free Pascal per NDS: Primi passi da Legolas [1] Free Pascal per NDS: Gestione dei files da Legolas [2] Free Pascal per NDS: Gestione della memoria video da Legolas [3] Free Pascal per NDS: i tipi di background e le modalità grafiche da Legolas [4] Free Pascal per NDS: configurazione dei banchi di memoria da Legolas [5] Free Pascal per NDS: background a tiles e mappe da Legolas [7] Free Pascal per NDS: gli sprites da Legolas [6] Free Pascal per NDS: rotazione e zoom dei background da Legolas Free Spider concetti base e prima applicazione da xinyiman L'oggetto request da xinyiman L'oggetto response da xinyiman L'oggetto TSpiderAction da xinyiman L'oggetto TSpiderTable da xinyiman L'oggetto TSpiderForm da xinyiman L'oggetto TSpiderPage da xinyiman Il ciclo di vita di una CGI da xinyiman Richieste simultanee da xinyiman Le sessioni utente da xinyiman Download/Upload File da xinyiman Smart Module Loading Design da xinyiman Performance da xinyiman Free Spider e database da xinyiman JQuery UI da xinyiman JQuery - Oggetto template da xinyiman JQuery - Oggetto JQGrid da xinyiman Redirect da xinyiman ExtPascal: panoramica sulle licenze da nomorelogic ExtPascal: Installazione e configurazione da nomorelogic ExtPascal: Installazione e configurazione / ExtPascal: Installation and configuration da nomorelogic Le griglie in ExtPascal - ExtPascalToolkit / Grids into ExtPascal - ExtPascalToolkit da xinyiman Utenti
Stats
Utenti Online![]() ![]() ![]() |