Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zuul - Websocket proxy #163

Closed
aivans opened this issue Jan 19, 2015 · 27 comments
Closed

Zuul - Websocket proxy #163

aivans opened this issue Jan 19, 2015 · 27 comments

Comments

@aivans
Copy link

aivans commented Jan 19, 2015

We currently have a direct Websocket connection that goes to a backend webservice (via a load balancer F5).

If we get F5 out of the picture in what regards webservices, and F5 will only talk to Zuul (let's say), can we proxy a websocket connection from browser to webservice via Zuul?

@dsyer
Copy link
Contributor

dsyer commented Jan 20, 2015

Zuul 1.x is pretty much limited to HTTP as far as I know (@spencergibb correct me if I'm wrong), and the current Spring Cloud proxy filter is probably not well suited to non-REST payloads (e.g. streaming). If we move to Zuul 2.0 at some point it opens up other possibilities.

@dsyer dsyer added the question label Jan 20, 2015
@dsyer dsyer changed the title Zuul - Websocket proxy- does it make sense? Zuul - Websocket proxy Jan 20, 2015
@aivans
Copy link
Author

aivans commented Jan 20, 2015

Hi Dave,

Is there a 2.0 for Netflix Zuul?

@dsyer
Copy link
Contributor

dsyer commented Jan 20, 2015

I believe it hasn't been released yet.

@aivans
Copy link
Author

aivans commented Jan 20, 2015

Ok, Thanks

@paskos
Copy link

paskos commented Apr 10, 2015

we're starting websocket development. Very very very interested in websocket support in zuul. Any news or ETA ?

@spencergibb
Copy link
Member

See this comment from zuul issues: Netflix/zuul#112 (comment). The short is zuul can terminate websockets in v2, but full duplex channels will come after a stable v2 and they integrate http://reactivesocket.io.

@aivans
Copy link
Author

aivans commented Oct 9, 2015

Thanks. By scenario 1 they mean to support terminating websockets natively, ie do not plugin another 3rd party support like Spring Websockets?

@tur-ing
Copy link

tur-ing commented Mar 2, 2016

Is there already an update of Zuul that supports the full duplex channels on websockets?

@dsyer
Copy link
Contributor

dsyer commented Mar 2, 2016

AFAIK there is no Zuul 2.x yet (they got to a release candidate and then stalled). Just keep tracking the Netflix issue.

@cforce
Copy link

cforce commented Mar 2, 2016

See also this alterntive: https://jmnarloch.wordpress.com/2015/11/11/spring-cloud-sock-js-stomp-zuul-no-websockets/

@kongslund
Copy link

Zuul 2 is just right around the corner but although websocket support is planned it will not be part of the first release.

Zuul 2 : The Netflix Journey to Asynchronous, Non-Blocking Systems

We are in the process of releasing Zuul 2 as open source. Once it is released, we’d love to hear from you about your experiences with it and hope you will share your contributions! We plan on adding new features such as http/2 and websocket support to Zuul 2 so that the community can also benefit from these innovations.

@mthizo247
Copy link

We have created a web socket support feature to resolve this issue. I will be creating a pull request in spring cloud netflix soon. The library and demo are currently hosted in github.

@spencergibb
Copy link
Member

It's not really zuul websocket support, it's a standalone websocket proxy that happens to sit next to zuul, correct @mthizo247?

@mthizo247
Copy link

@spencergibb yes that's correct.

@ExtremeYu
Copy link

ExtremeYu commented Jun 20, 2017

@spencergibb the demo of zuul&websocket is not work with service-id,the demo just support url based service dicsovery

@spencergibb
Copy link
Member

@ExtremeYu you'll have to speak to the author of the demo.

@barrett-rob
Copy link

barrett-rob commented Jun 23, 2017

Have been looking at this issue, we have a similar requirement, to proxy websocket connections through a zuul server. The requirement is slightly different though because the websocket connections will be 'special' and won't need to be handled in the same way as other requests that come through zuul.

Previously this was really easy to achieve with nodejs and http-proxy. This is an example of how to get started in java and Spring Boot: https://github.com/barrett-rob/java-websocket-reverse-proxy

NB: no safety, connection reestablishment, etc

@jonfreedman
Copy link

What's the status of Zuul 2.0? Is 2.0.0-rc.2 suitable for production use or is "the process of releasing Zuul 2 as open source" still ongoing?

@spencergibb
Copy link
Member

You'll have to ask Netflix

@tsmgodoi
Copy link

tsmgodoi commented Sep 4, 2017

@jonfreedman I think spring cloud now has a new gateway solution (namely, http://cloud.spring.io/spring-cloud-gateway/) which already supports Websockets.

@ExtremeYu
Copy link

@tsmgodoi what different between the zuul and spring cloud gateway????????????????????????????????

@tsmgodoi
Copy link

tsmgodoi commented Sep 4, 2017

@ExtremeYu I don't know. I haven't used it yet. I think it is based on spring boot 2.0 and spring framework 5. So probably you won't be able to use it with existing software without updating it.

@jonfreedman
Copy link

I spent several hours yesterday looking at the alternatives, none of which I could make work with netty-socketio.

For reference these include:

Given what I'm trying to achieve I'm just putting this on hold until December. Currently the Spring release milestones are:

@berndgoetz
Copy link

@jonfreedman any new insights since December?

@spencergibb
Copy link
Member

Zuul 2 will not be incorporated into Spring Cloud. See spring cloud gateway for websockets support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests