> > My error. ChainedTunnel does fallback to HTTP; my testing was done > incorrectly. > So I'll reduce my question to: > 1. Is there a way to report this on the browser? >
Kind of depends on what you mean by "report" - it does get "reported" to the browser and captured by the ChainedTunnel implementation, which turns around and tries the next tunnel. I think if you wanted to do something else with it, like log it in the browser or display an error, you'd need to implement your own version of the ChainedTunnel that handles those failures as you require. You could use the existing HTTP and WebSocket tunnels defined in the Tunnel.js file, but don't use ChainedTunnel and, instead, customize your own implementation that suits your needs. What is it that you mean by "report" and what are you trying to accomplish? > 2. How can the server inform the browser of errors, especially if > using a WebSocket? > This is a little vague - are you still talking tunnel errors, like failure to establish a WebSocket tunnel, high latency, loss of connection, etc.? Several of these error types are already handled within the Guacamole code - for example, warnings are displayed when the network is unstable - but these are more detected by the AngularJS side than they are "reported" by the server. Without knowing more specifically what errors you're trying to handle, I'd point out that the REST API currently used by the Guacamole Client does quite a bit of handling of messages between the client and server, and gives the server the ability to throw exceptions back to the client with data that the client can then interpret. This is used extensively throughout the Guacamole Client code, for everything from authentication (which throws a HTTP 403 error with the requirements for logging in) to permissions management and error handling, to establishing connections and handle disconnects, etc. -Nick
