Hi Steven,
the latest code on Github works and will be contained in the next official 4.1 release. I cannot commit to any schedule at the moment, though.
When
allowWebSockets is set to
"true" and Membrane detects a switch to the WebSocket protocol, it will basically go out of the way and simply forward any packets (or WebSocket frames, if you like) from the client to the server (and vice versa). At the moment, Membrane does not parse or enforce correct usage of the WebSocket protocol. Nor does it offer any monitoring and/or logging. This might change in the future, but not before the next official release.
We use
<router>
<httpClientConfig allowWebSockets="true" />
<serviceProxy port="443" >
<ssl>
... <!-- keystore configuration -->
</ssl>
<if test="exc.request.header.getFirstValue('Upgrade') == 'websocket'">
<groovy>
exc.request.uri = "/"
exc.destinations[0] = "http://localhost:61614/"
</groovy>
<httpClient />
</if>
<target host="localhost" port="8080" />
</serviceProxy>
</router>
to forward any WebSocket connection locally to port 61614, while normal HTTP requests (=non-WebSocket requests) will be forwarded to 8080.
I do not expect the configuration to change. (Any suggestions? ;) )
Best, Tobias