Re: Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
On 29.01.21 12:27, Christopher Faulet wrote: Le 22/01/2021 à 07:08, Willy Tarreau a écrit : On Thu, Jan 21, 2021 at 11:09:33PM +0100, Aleksandar Lazic wrote: On 21.01.21 21:57, Christopher Faulet wrote: Le 21/01/2021 à 21:19, Aleksandar Lazic a écrit : Hi. I'm not sure if I have missed something, because there are so many great features now in HAProxy, therefore I just ask here. Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy now? Hi, It is not possible right now. But it will be very very soon. Amaury implemented the H2 websocket support and it works pretty well. Unfortunately, this relies on some tricky fixes on the tunnel management that must be carefully reviewed. It is a nightmare to support all tunnel combinations. But I've almost done the review. I must split a huge patch in 2 or 3 smaller and more manageable ones. I'm on it and I will do my best to push it very soon. Anyway, it will be a feature for the 2.4. Wow that sounds really great. Thank you for your answer. And by the way initially we thought we'd backport Amaury's work to 2.3, but give the dependency with the tunnel stuff that opened this pandora box, now I'm pretty sure we won't :-) One nice point is that he managed to natively support the WS handshake, it's not just a blind tunnel anymore, so that it's possible to have WS using either H1 or H2 on the frontend, and either H1 or H2 on the backend. Now we're really seeing the benefits of HTX because while at each extremity we have a very specific WS handshake, in the middle we just have a tunnel using a WS protocol, which allows a CONNECT on one side to become a GET on the other side. As Christopher said, the tunnel changes are extremely complicated because these uncovered some old limitations at various levels, and each time we reviewed the pending changes we could imagine a situation where an odd use case would break if we don't recursively go into another round of refactoring at yet another deeper level. But we're on the right track now, things start to look good. FYI, the HTTP/2 websockets support is now available and will be part of the next 2.4-dev release (2.4-dev7) Cool thanks.
Re: Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
Le 22/01/2021 à 07:08, Willy Tarreau a écrit : On Thu, Jan 21, 2021 at 11:09:33PM +0100, Aleksandar Lazic wrote: On 21.01.21 21:57, Christopher Faulet wrote: Le 21/01/2021 à 21:19, Aleksandar Lazic a écrit : Hi. I'm not sure if I have missed something, because there are so many great features now in HAProxy, therefore I just ask here. Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy now? Hi, It is not possible right now. But it will be very very soon. Amaury implemented the H2 websocket support and it works pretty well. Unfortunately, this relies on some tricky fixes on the tunnel management that must be carefully reviewed. It is a nightmare to support all tunnel combinations. But I've almost done the review. I must split a huge patch in 2 or 3 smaller and more manageable ones. I'm on it and I will do my best to push it very soon. Anyway, it will be a feature for the 2.4. Wow that sounds really great. Thank you for your answer. And by the way initially we thought we'd backport Amaury's work to 2.3, but give the dependency with the tunnel stuff that opened this pandora box, now I'm pretty sure we won't :-) One nice point is that he managed to natively support the WS handshake, it's not just a blind tunnel anymore, so that it's possible to have WS using either H1 or H2 on the frontend, and either H1 or H2 on the backend. Now we're really seeing the benefits of HTX because while at each extremity we have a very specific WS handshake, in the middle we just have a tunnel using a WS protocol, which allows a CONNECT on one side to become a GET on the other side. As Christopher said, the tunnel changes are extremely complicated because these uncovered some old limitations at various levels, and each time we reviewed the pending changes we could imagine a situation where an odd use case would break if we don't recursively go into another round of refactoring at yet another deeper level. But we're on the right track now, things start to look good. FYI, the HTTP/2 websockets support is now available and will be part of the next 2.4-dev release (2.4-dev7) -- Christopher Faulet
Re: Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
On Thu, Jan 21, 2021 at 11:09:33PM +0100, Aleksandar Lazic wrote: > On 21.01.21 21:57, Christopher Faulet wrote: > > Le 21/01/2021 à 21:19, Aleksandar Lazic a écrit : > >> Hi. > >> > >> I'm not sure if I have missed something, because there are so many great > >> features > >> now in HAProxy, therefore I just ask here. > >> > >> Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy > >> now? > >> > > > > Hi, > > > > It is not possible right now. But it will be very very soon. Amaury > > implemented the > > H2 websocket support and it works pretty well. Unfortunately, this relies > > on some > > tricky fixes on the tunnel management that must be carefully reviewed. It > > is a > > nightmare to support all tunnel combinations. But I've almost done the > > review. I > > must split a huge patch in 2 or 3 smaller and more manageable ones. I'm on > > it and I > > will do my best to push it very soon. Anyway, it will be a feature for the > > 2.4. > > Wow that sounds really great. Thank you for your answer. And by the way initially we thought we'd backport Amaury's work to 2.3, but give the dependency with the tunnel stuff that opened this pandora box, now I'm pretty sure we won't :-) One nice point is that he managed to natively support the WS handshake, it's not just a blind tunnel anymore, so that it's possible to have WS using either H1 or H2 on the frontend, and either H1 or H2 on the backend. Now we're really seeing the benefits of HTX because while at each extremity we have a very specific WS handshake, in the middle we just have a tunnel using a WS protocol, which allows a CONNECT on one side to become a GET on the other side. As Christopher said, the tunnel changes are extremely complicated because these uncovered some old limitations at various levels, and each time we reviewed the pending changes we could imagine a situation where an odd use case would break if we don't recursively go into another round of refactoring at yet another deeper level. But we're on the right track now, things start to look good. Cheers, Willy
Re: Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
On 21.01.21 21:57, Christopher Faulet wrote: > Le 21/01/2021 à 21:19, Aleksandar Lazic a écrit : >> Hi. >> >> I'm not sure if I have missed something, because there are so many great features >> now in HAProxy, therefore I just ask here. >> >> Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy now? >> > > Hi, > > It is not possible right now. But it will be very very soon. Amaury implemented the > H2 websocket support and it works pretty well. Unfortunately, this relies on some > tricky fixes on the tunnel management that must be carefully reviewed. It is a > nightmare to support all tunnel combinations. But I've almost done the review. I > must split a huge patch in 2 or 3 smaller and more manageable ones. I'm on it and I > will do my best to push it very soon. Anyway, it will be a feature for the 2.4. Wow that sounds really great. Thank you for your answer. Regards Aleks
Re: Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
Le 21/01/2021 à 21:19, Aleksandar Lazic a écrit : Hi. I'm not sure if I have missed something, because there are so many great features now in HAProxy, therefore I just ask here. Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy now? Hi, It is not possible right now. But it will be very very soon. Amaury implemented the H2 websocket support and it works pretty well. Unfortunately, this relies on some tricky fixes on the tunnel management that must be carefully reviewed. It is a nightmare to support all tunnel combinations. But I've almost done the review. I must split a huge patch in 2 or 3 smaller and more manageable ones. I'm on it and I will do my best to push it very soon. Anyway, it will be a feature for the 2.4. -- Christopher Faulet
Question about rfc8441 (Bootstrapping WebSockets with HTTP/2)
Hi. I'm not sure if I have missed something, because there are so many great features now in HAProxy, therefore I just ask here. Is the rfc8441 (Bootstrapping WebSockets with HTTP/2) possible in HAProxy now? Regards Aleks