On 11 Sep 2015, at 23:49, Jacob Champion <champio...@gmail.com> wrote:

> Hi Alex,
> 
> On 09/11/2015 10:02 AM, Alex Bligh wrote:
>> mod_proxy_wstunnel forwards the websocket connection without
>> interpreting the protocol (i.e. needs to be directed at a websocket
>> server); my module (which just plugs into mod_websocket) forwards it
>> as a TCP port. EG for VNC over Websockets you'd just need to point my
>> module at port 5900, whereas with mod_websocket you'd need something
>> further to decode it.
> 
> Oh, neat! I assume there are specific protocol designs that can't be proxied 
> over WebSocket? (For example, anything that requires the application-level 
> use of a TCP half-close would presumably be iffy?) What are the sorts of 
> protocols that work best with this setup?

There are some that cannot be proxied directly, but not many due to the 
prevalence of UNIX 'everything is a file' paradigm.

One such example is the guacamole protocol (a bit like VNC) which requires that 
a guacamole frame travelling toward the client is not split across websockets 
frames. You will find in the example I sent a processor for that which 
interprets client-bound data and splits them up into specific frames rather 
than treating them as a stream.

I've not come across any issues with half close, but I suppose that might be an 
issue.

> At this point I want to avoid biting off more than I can chew -- I want to 
> get the current code in order before absorbing more functionality  -- but 
> this is a really neat idea. I'll need to think about security corner cases 
> with a generic TCP proxy setup too... more research needed.

Sure - I was more thinking to add it as an example. As I say, it's a *user* of 
your module (well, disconnect's module), not a code change to it. There's 
probably piles of stuff you can strip out.

Oh, and allegedly it doesn't compile on Windows (I wouldn't be able to test 
that).

-- 
Alex Bligh




Reply via email to