|
From: | Amirouche Boubekki |
Subject: | Re: Streaming responses with Guile's web modules |
Date: | Tue, 18 Sep 2018 22:08:50 +0200 |
User-agent: | Roundcube Webmail/1.1.2 |
On 2018-09-18 21:42, Roel Janssen wrote:
Dear Guilers, I'd like to implement a web server using the (web server) module, but allow for “streaming” results. The way I imagine this would look like, is something like this: (define (request-handler request body) (values '((content-type . (text/plain))) ;; This function can build its response by writing to ;; ‘port’, rather than to return the whole body as a ;; string. (lambda (port) (format port "Hello world!")))) (run-server request-handler) Is this possible with the (web server) module? If so, how?
What you describe is exactly how it works. The second value can be a bytevector, #f or a procedure that takes a port as argument. Here is an example use [0] and here is the code [1][0] https://framagit.org/a-guile-mind/culturia.next/blob/master/culturia/web/helpers.scm#L34 [1] https://git.savannah.gnu.org/cgit/guile.git/tree/module/web/server.scm#n198
Regards -- Amirouche ~ amz3 ~ http://www.hyperdev.fr
[Prev in Thread] | Current Thread | [Next in Thread] |