[Libwebsockets] write complete client response back to parent

Andy Green andy at warmcat.com
Fri Feb 17 02:13:40 CET 2017



On 02/17/2017 08:46 AM, Joel Winarske wrote:
> I'm calling the "parent" wsi, that which is responsible for the client 
> connection.
>
> I'm figuring in user land I would do something like this:
> get response value here -> LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP && 
> LWS_CALLBACK_CLIENT_CONNECTION_ERROR
> get headers here -> LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH
> read/write here -> LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ (chunked) 
> && LWS_CALLBACK_RECEIVE_CLIENT_HTTP (non-chunked)
>
> Sound about right?

I guess.

-Andy

>
> Thanks,
> Joel
>
> On Thu, Feb 16, 2017 at 3:12 PM, Andy Green <andy at warmcat.com 
> <mailto:andy at warmcat.com>> wrote:
>
>
>
>     On February 17, 2017 4:19:54 AM GMT+08:00, Joel Winarske
>     <joel.winarske at gmail.com <mailto:joel.winarske at gmail.com>> wrote:
>     >Hi Andy,
>     >
>     >What method would you suggest to write the complete client response
>     >(status
>     >+ headers + data) back to the parent?
>
>     I don't really follow (because you don't explain) what 'parent'
>     means to you.
>
>     If 'parent' is ultimately another socket, and you want to write
>     the client rx back out on that, the basic point is don't consume
>     the incoming client rx until the outgoing socket is writable. 
>     This means the outgoing socket effectively flow-controls reading
>     the incoming client data.
>
>     The client rx is in two parts, the callback to notify something
>     came, and then an api call to get / consume it, exactly to
>     facilitate your asking for a callback when something else becomes
>     writable in response to "something came on your client connection"
>     message appears, and get / consume the client rx only when the
>     onward socket's writable callback comes.
>
>     For headers, lws doesn't keep them verbatim, but you can dump the
>     ah version. Status is also in there.
>
>     -Andy
>
>     >
>     >Thanks,
>     >Joel
>
>




More information about the Libwebsockets mailing list