I am using Netty as a client-server framework for the development of Java network applications.
Does Netty ProxyHandler supports HTTP/2 ? If so, from which version it is supported?
No the ProxyHandler does only support HTTP1/1.
Related
Does the grizzly web socket library support flow control/back pressure ?
If so, which version of grizzly web socket library supports the back pressure ? please share the library /documentation links.
Does Java 11 Websocket api support backpressure or any other open source library supports ?
Pointers to relevant link will be helpful.
Thanks,
Manpreet
According to the gRPC.io website I know gRPC supports http 1.x and 2.0 but what about other "transports" like zeromq or nanomsg?
gRPC does not support zeromq or nanomsg. The supported transports are HTTP2, QUIC and in-process. You can find more details in https://grpc.github.io/grpc/core/md_doc_core_transport_explainer.html
I haven't found any solution about this. It seems Jetty doesn't support this feature yet. I might be wrong so please, enlighten me.
I've got a very simple Java client which connects to a Java server at localhost:8080. I would like to add a transparent proxy between them in order to simulate what we could find in a company's private network.
Update: May, 2017
Starting in Jetty 9.4.0 and onwards, the native Jetty WebSocketClient supports Proxies via the Jetty HttpClient.
This works by declaring an HttpClient, along with its proxy configurations, and then handing that off to the WebSocketClient constructor to use.
This only works with the following:
HTTP/1.1 upgrade to WebSocket
Native Jetty WebSocket APIs
This does not work with the following:
HTTP/2 (there is no spec for WebSocket over HTTP/2 as of yet)
JSR356 javax.websocket (there are ideas for API breaking changes to the JSR356 ClientContainer to allow passing in a Jetty HttpClient via a constructor, let us know if this is viable option for you by filing a new issue on github saying so)
Original Answer
With Jetty 9, there's no Proxy support for either the Jetty Native WebSocket client, or the JSR-356 (javax.websocket) client implementation.
This support is scheduled for Jetty 10 (which is tracking Servlet 4), and will result in a complete reworking of the entire client library suite in Jetty to have equal support for :
HTTP/1.1
HTTP/2 (native/direct)
HTTP/1.1 upgrade to HTTP/2 (h2c)
HTTP/1.1 upgrade to WebSocket
HTTP/2 websocket channel (currently in draft specs)
Proxy support
Cookie support
etc ...
The existing WebSocket client implementations on Jetty are standalone, due to the JSR-356 support requirements.
The existing WebSocket client does not leverage the existing Jetty HttpClient in Jetty 9.x. If it did then proxy support could, maybe, under a very limited set of scenarios, work.
This is a low priority feature request, as there are few existing proxies out there that support WebSocket so far (actually, they have generally bad support for HTTP/1.1 upgrade). Even Jetty's own Server side Proxy does not currently support HTTP/1.1 upgraded connections.
According to Figure 2 in How HTML5 Web Sockets Interact With Proxy Servers, if you are trying to use a transparent proxy, you don't have to require a proxy support on the client side. On the other hand, an explicit proxy requires client libraries to support proxy.
Jetty WebSocket client won't have any problem if your proxy is transparent.
I have been exploring options to provide websocket support on JBoss 6. WebSocket was added in Java EE 7 so JBoss 6 doesn't have native support for it.
I explored other options to get websocket support on JBoss 6. One of the commonly suggested approaches is to use Atmosphere library. But found that Atmosphere on JBoss 6 falls back to long polling (doesn't support websockets). Here is the reference,link. I need websocket support and no alternatives.
My investigation so far suggests that, websockets support requires changes in transport protocol mechanism. So we can't get native support for it on JBoss 6 even by adding external jars/libraries.
Any suggestion/opinion ??
Couldn't find any reference for websocket support on JBoss 6. JBoss supports it from EAP 6.3
So going ahead with HTTP.
Which version of JBoss are you using? 6.2+ works with https://github.com/Atmosphere/atmosphere/wiki/Installing-JBoss-WebSocket-Support
http://activemq.apache.org/websockets.html says that these guys have implemented stomp over web sockets functionality. How is it different for the normal web sockets solution provided by Dojo's cometd? I thought web socket spec defines its own message structure and all? How does the HTTP upgraded web socket differs from this stomp over websockets? Would really appreciate some expert opinion guys.
Thanks,
Bhanu
The cometd implementation uses the Bayeux protocol, while the Apache implementation uses WebSockets.