On Fri, Sep 3, 2021 at 10:10 AM <[email protected]> wrote:
> Hi everyone, > > I'm trying to develop guacamole-client but stucked at session recording > playback. I want to save recordings at guacamole-client machine (not on > guacd machine) and playback on that machine but I can't find any way to do > this. I saw guacamole-playback-example but it uses a dumped file that's > allready on guacamole-client machine. Can you give me advice about that. > > There's currently not a way to save recordings using Guacamole Client - the recording functionality is performed by guacd, as the user running guacd. We've talked in the past about various ways to more tightly integrate the recordings made by guacd into the Guacamole Client system, but no progress has been made on that. If that's something you're trying to do, I can think of a couple of possibilities that you could look into: * Write some recording functionality in Guacamole Client, perhaps on the Java side of things. This would likely involve intercepting the traffic that goes between the end user (web browser) and guacd, and writing it off to a file, similar to how guacd does it. It should be doable, and probably pretty easily, as Guacamole Client already takes care of tunneling between HTTP(S)/WS(S) and guacd, so it should just be a matter of making a copy of the data that the tunnel is handling. There may be some logic that needs to be thrown in to ignore certain things, but I would think this would be doable. The only other thing I can think of, here, is that however you implement it will need to be done in a "non-blocking" sort of way - so, the code that makes the copy of that data and writes it out to disk will either need to be robust enough that it doesn't interfere with the client <-> guacd conversation, or you'll want to buffer it in such a way that the conversation can continue even if the writing out to disk is delayed, fails, etc. * Provide some level of integration between guacd's recordings and Guacamole Client - some sort of tagging, or tracking of the recordings, and ability for Guacamole Client to retrieve them. This would allow the recordings to continue to be done by guacd, which is likely going to be more resource efficient and less prone to delays/dropped data, but is going to require some more creative thought as to how to make that integration happen. There may need to be some additional conversation that happens between guacd and Guacamole Client where the name and location of the file is provided back to Guacamole Client so that it can store it somewhere, or even some other sort of channel where Guacamole Client can request a list of recordings. * Mike also mentioned at one point the ability to record on the browser side, so that users could essentially have their recordings instantly and locally. This would likely be very resource intensive (browser is not going to be efficient at this), and limited in terms of frame rate, amount of data, etc. -Nick
