Hi Sergey, Thanks for your detailed answer, I will experiment all your suggestions.
Best Regards ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat > On Feb 28, 2017, at 10:07 PM, Sergey Beryozkin <[email protected]> wrote: > > Hey Freeman > > You can with a JAXRSClientServerWebSocketTest (copy it to the undertow > systests), add a CXF websocket transport dep and see if it can already work. > Next try JAXRSClientServerWebSocketSpringWebAppTest in the undertow tests... > > Cheers, Sergey > On 28/02/17 13:44, Sergey Beryozkin wrote: >> Hi Freeman, >> >> yeah, please try your new module idea on the branch and see if you can >> make a JAXRS sys test working with it, but also >> try to run a websocket web demo with Tomcat 7 first to confirm it is >> working, then with Tomcat 8 and somehow get it actually running :-), and >> I think if you make it happen then it will also work with Undertow >> >> Thanks, Sergey >> On 28/02/17 13:39, Sergey Beryozkin wrote: >>> Hi Freeman >>> On 28/02/17 13:12, Freeman Fang wrote: >>>> Hi Sergey, >>>> >>>> Thanks for the detailed response. >>>> >>>> I wanna add websocket transport with undertow because just like jetty, >>>> we have http-jetty transport and we have websocket transport with >>>> jetty websocket implementation. >>> >>> We don't have a web socket transport with a Jetty web socket >>> implementation. We have a web socket transport which can use Atmosphere >>> and it is is not available - then *delegates* to a Jetty implementation >>> if it is available. Please have a look at the code. >>> >>> And the most important thing is, this CXF web socket transport makes >>> sure that irrespectively of which WebSocket implementation is loaded it >>> does the proper formatting of the response and processing of the request >>> as per the CXF docs/tests/demos which is what you'd need to duplicate >>> somehow otherwise. >>> >>> >>>> As we also have http-undertow transport and so have websocket >>>> transport with undertow websocket implementation should make sense IMHO. >>>> >>>> And yeah, the websocket transport with undertow websocket >>>> implementation should be just as its counterpart, the websocket >>>> transport with jetty websocket implementation do. >>>> >>>> And yes, undertow implement JSR356, but I’m more looking at the >>>> embedded undertow server which can support the websocket, not sure how >>>> the JSR356 code can kick in here though. >>>> >>> If Undertow implements JSR356 then the CXF WebSocket Transport can or >>> should be able to load it which is what I was referring to. >>> For example, a CXF WebSocket demo works with Tomcat 7 but we do not have >>> any Tomcat code in CXF not we use Jetty in that case, see what I mean ? >>> If it gets fixed to work in Tomcat 8 then it will also work with >>> Undertow JSR356 which I expect to be effectively a wrapper around >>> Undertow internal WebSocket code. IMHO it is really worth pursuing. >>> >>> Otherwise you'd have something like undertow_websocket which would >>> duplicate a fair bit of the existing CXF web socket transport code. >>> >>> Think about it please, if we can avoid adding one more module by >>> enhancing the existing one and achieving the same result for CXF >>> endpoints using WebSocket on top of Undertow then it will be good IMHO... >>> >>> You can try and go a new module route and add say a JAXRS Undertow >>> WebSocket test by copying one of the existing JAXRS web socket tests >>> on a new branch and we can discuss it further - I hope once you end up >>> doing it you will see why enhancing the existing Web Socket transport >>> may be better :-). >>> >>> If we can have the existing transport enhanced to load JSR356s correctly >>> then we can get rid of the Jetty delegation code, have only Atmosphere >>> linking to Tomcat/Jetty/Netty/Undertow JSR356s... >>> >>> Sergey >>> >>> >>> >>> >>>> Best Regards >>>> ------------- >>>> Freeman(Yue) Fang >>>> >>>> Red Hat, Inc. >>>> FuseSource is now part of Red Hat >>>> >>>> >>>> >>>>> On Feb 28, 2017, at 6:38 PM, Sergey Beryozkin <[email protected]> >>>>> wrote: >>>>> >>>>> Hi Freeman >>>>> On 27/02/17 23:44, Freeman Fang wrote: >>>>>> Hi Team, >>>>>> >>>>>> We have websocket transport in CXF for a while, I wanna know how >>>>>> wide is this used by CXF users, if this is widely used, is it >>>>>> feasible to also add undertow websocket implementation in CXF? >>>>>> >>>>> The existing CXF web socket transport is meant to support JAX-RS >>>>> flows over WebSocket given that the JSR356 API is not synchronized to >>>>> either JAX-RS or JAX-WS at all. Please check systests/jaxrs >>>>> WebSockets tests. >>>>> I do not remember Aki trying it with JAXWS but with a bit of the >>>>> extra work it will work with JAXWS too. >>>>> Aki started documenting it here: >>>>> http://cxf.apache.org/docs/websocket.html >>>>> >>>>> and I recall we were discussing enhancing the transport for it to >>>>> load the custom bindings to support SOAP etc >>>>> >>>>> This transport uses Atmosphere if it is available and was tested with >>>>> Tomcat 7 and Jetty, Tomcat 8 was problematic due to the issues with >>>>> the way JSR356 implementation was picked up. Otherwise, if Jetty is >>>>> available, it tries to use the Jetty implementation... This transport >>>>> will work side by side with either the HTTP Servlet or Http Jetty >>>>> transports. >>>>> >>>>> Users are asking and trying it now and then not sure how widely it is >>>>> used but it has to be supported IMHO and enhanced (custom bindings. >>>>> etc). >>>>> >>>>> As far as the Undertow WebSocket implementation is concerned, why >>>>> would you like to get it into CXF ? >>>>> >>>>> If it can support the JAXRS flows and possibly JAXWS flows the way >>>>> the current transport can then why not, but IMHO this should be a >>>>> prerequisite, given that CXF transports are here to support JAXWS & >>>>> JAXRS. >>>>> >>>>> The other question is, does Undertow implement JSR356 ? If yes then >>>>> may be a better idea would be to fix the existing CXF websocket >>>>> transport to correctly load JSR356 code, which would make it work >>>>> with the Undertow or Tomcat8 etc JSR356 code. >>>>> >>>>> Thanks, Sergey >>>>> >>>>> >>>>>> Any input is appreciated. >>>>>> >>>>>> Thanks! >>>>>> ------------- >>>>>> Freeman(Yue) Fang >>>>>> >>>>>> Red Hat, Inc. >>>>>> FuseSource is now part of Red Hat >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> >> >> > > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/
