cfmlprojects / runwar

Other
11 stars 16 forks source link

Websocket support #53

Closed bdw429s closed 7 years ago

bdw429s commented 7 years ago

I need some helping tracking down an issue with getting Igal's new Websocket extension for Lucee 5 to work with Undertow. I've gotten to a place where I'm not sure if changes need to happen to CommandBox, Runwar, Undertow, or the extension.

See this demo: https://www.youtube.com/watch?v=4nC1lMv-QwI There are links to both the extension and the sample app in the video description. To get it working, you'll need to start cfengine=lucee and then upgrade the Lucee version in the admin to the latest snapshot release of Lucee. I also had to grab this jar file, which I suspect we need to start shipping with Runwar: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22javax.websocket-api%22

The current behavior of the sample is an NPE and Igal had the following to say about it:

I think that Undertow is not setting up the configuration properly. try to search for docs about it. I had a similar issue with embedded Jetty which required more configuration your NPE comes from this line: > (ServerContainer)app.getServletContext().getAttribute("javax.websocket.server.ServerContainer") Undertow returns null a JSR-356 compliant container should return an instance of type javax.websocket.server.ServerContainer

@denuno can you help me track down who controls the servlet context and what it returns for that getAttribute() call? Maybe there's a switch we need to activate in Undertow for Websocket support?
I see a reference to a undertow-websockets-jsr dependency on this page: http://undertow.io/undertow-docs/undertow-docs-1.3.0/

bdw429s commented 7 years ago

For what it's worth, adding the undertow-websockets-jsr jar to my lib path, doesn't resolve the NPE.

lmajano commented 7 years ago

@denuno any updates on this?

denuno commented 7 years ago

The Lucee websocket extension + demo app linked above work now.

bdw429s commented 7 years ago

Excellent