Re: [jetty-users] ProxyServlet & chunking

2022-07-12 Thread LP via jetty-users
Thanks Greg, I was able to get it working with the following code:

@Override
protected void onResponseContent(HttpServletRequest request, 
HttpServletResponse response, Response proxyResponse, byte[] buffer, int 
offset, int length, Callback callback) {

super.onResponseContent(request, response, proxyResponse, buffer, offset, 
length, new Callback.Nested(callback) {
@Override
public void completed() {
if("text/event-stream".equalsIgnoreCase(response.getContentType())) {
try {
response.flushBuffer();
((org.eclipse.jetty.server.Response)response).getHttpOutput().isReady();
}
catch(Exception e) {
throw new RuntimeException(e);
}
}
}
});}

The call to isReady() seems to be necessary with AsyncProxyServlet, but not 
with ProxyServlet.
--- Original Message ---
On Monday, July 11th, 2022 at 10:13 PM, Greg Wilkins  wrote:

> You are able to call response.flushBuffers() to flush any buffered content.
>
> On Tue, 12 July 2022, 14:25 LP via jetty-users,  
> wrote:
>
>> Hi,
>>
>> My understanding of HTTP/1.1 chunking is that it's considered to be a 
>> hop-to-hop feature, and so if the server behind an (Async)ProxyServlet 
>> responds with a stream of small chunks they can be buffered. This poses a 
>> challenge for some chunking use-cases, including SSE (Server Sent Events). 
>> One workaround I found for SSE is to send a large-ish "flush" event with 
>> some random junk after each "real" event to push the real event through the 
>> buffer. This works fine when the events aren't too frequent, but it's 
>> obviously not a great solution.
>>
>> Is there any functionality available that allows for setting a timeout in 
>> the ProxyServlet after which any buffered response content would 
>> automatically be flushed via chunking? If not, would this be difficult to 
>> implement?
>>
>> Jetty rules!
>>
>> Thanks,
>> LP
>> ___
>> jetty-users mailing list
>> jetty-users@eclipse.org
>> To unsubscribe from this list, visit 
>> https://www.eclipse.org/mailman/listinfo/jetty-users___
jetty-users mailing list
jetty-users@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users


Re: [jetty-users] ProxyServlet & chunking

2022-07-11 Thread Greg Wilkins
You are able to call response.flushBuffers() to flush any buffered content.



On Tue, 12 July 2022, 14:25 LP via jetty-users, 
wrote:

> Hi,
>
>   My understanding of HTTP/1.1 chunking is that it's considered to be a
> hop-to-hop feature, and so if the server behind an (Async)ProxyServlet
> responds with a stream of small chunks they can be buffered. This poses a
> challenge for some chunking use-cases, including SSE (Server Sent Events).
> One workaround I found for SSE is to send a large-ish "flush" event with
> some random junk after each "real" event to push the real event through the
> buffer. This works fine when the events aren't too frequent, but it's
> obviously not a great solution.
>
>   Is there any functionality available that allows for setting a timeout
> in the ProxyServlet after which any buffered response content would
> automatically be flushed via chunking? If not, would this be difficult to
> implement?
>
>   Jetty rules!
>
> Thanks,
>   LP
> ___
> jetty-users mailing list
> jetty-users@eclipse.org
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
___
jetty-users mailing list
jetty-users@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users