Page 1 of 1
Servidor WEB
Posted: Sun Jul 03, 2022 6:22 pm
by Mike Serra
Buenas tardes foro:
Necesito crear un servidor web en Harbour + FW, al cual, se le pueda enviar un fichero JSON desde una appweb escrita en Laravel y éste a su vez sea capaz de procesar ese fichero JSON y devolver una determinado fichero en PDF. He estado revisando mucho código fuente, pero estoy un poco perdido. Podríais indicarme algun ejemplo por donde pueda empezar?.
Muchas gracias de antemano.
Re: Servidor WEB
Posted: Sun Jul 03, 2022 8:12 pm
by cnavarro
Esta es la primera opcion que deberías valorar, aunque hay otras posibilidades
https://github.com/harbour/core/tree/ma ... ib/hbhttpdEsta contrib te crea un servidor web, que atiende las peticiones que hagas
A partir de ahí, lo que hagas con el JSON o datos recibido en tu petición .......
Cualquier cosa, grita

Re: Servidor WEB
Posted: Sun Jul 03, 2022 11:31 pm
by Antonio Linares
Mike,
Si no necesitas soporte https de momento y te vale solo con http, en la versión de FWH 22.06 se incluye un servidor web muy simple de usar (usa threads) que te permitiría atender las peticiones que le hagas. Asi que desde tu propia aplicación en FWH podrias solucionar facilmente lo que necesitas.
Para que veas su simplicidad, se arranca así: hb_threadStart( @WebServer() )
y la función WebServer() no puede ser más simple:
Code: Select all | Expand
function WebServer()
local oServer := HbWebServer()
oServer:bOnGet = { | cF, cR | WndMain():Html( cF, cR ) }
oServer:Run()
return nil
Re: Servidor WEB
Posted: Sun Jul 03, 2022 11:37 pm
by Antonio Linares
Mike,
Por cierto, como comentaste hace poco que
necesitabas usar web sockets, comentarte que en la versión de FWH 22.06 también se ha incorporado ya el servidor de web sockets, con un uso también muy simple:
También lo arrancas como thread: hb_threadStart( @WSServer(), oWndChild )
y la función WSServer() mira lo sencilla que es:
Code: Select all | Expand
function WSServer( oWndChild )
local oWebSocketServer := TWebSocketServer()
USE Customer SHARED
hb_DbDetach( "customer" )
oWebSocketServer:bOnRequest = { | cRequest, cRet | hb_DbRequest( "CUSTOMER" ),;
If( cRequest == "prev", DbSkip( -1 ), DbSkip() ),;
cRet := customer->first,;
hb_DbDetach( "CUSTOMER" ), cRet }
oWebSocketServer:Run()
return nil
Re: Servidor WEB
Posted: Mon Jul 04, 2022 6:32 am
by Mike Serra
Buenos días y gracias Cristobal / Antonio:
Comenzaré por la contribución. Antonio, es verdad que hace poco estuve tanteando el tema de los websockets, pero el grupo de compañeros que desarrollan el lado web me comentaron que lo tengamos como opción B. Voy a ver como trincho el pavo.
Muchas gracias.