[X2go-dev] Questions about the source

Tyler Jameson Little beatgammit at gmail.com
Sat Mar 19 19:43:55 CET 2011


Thanks everyone for your input.  Here in my idea outlined in steps:


   1. Rewrite the interface with SSH to instead forward the compressed
   traffic over HTTP to the browser
      1. Create a module for NodeJS
      2. Create a websocket with a browser that supports websockets
      3. Transmit data over the websocket
   2. Decompress the chunks as they come on the browser
   3. Update each chunk on the HTML canvas

I think the HTML5 canvas is robust enough to support an entire x session,
especially with hardware acceleration, which is common in many modern
browsers, particularly IE 9, Chrome, Opera, and Safari (I think Firefox 4
will handle it too).  I'm not sure if there are many differences  between
the server on Linux, Mac and Windows, but I figured I'd start with Gnome on
Linux for the server, and Chrome for the client.

I figure I'd not bother encrypting the traffic as that can be done over
HTTPS.  Ajax has a lot of overhead because each Ajax request has it's own
HTTP header, so I thought I'd try to use websockets where available so new
chunks can be pushed to the client without any HTTP overhead.  I don't want
to use VNC because it has way too much overhead and is also kind of buggy (I
have used an implementation called guacamole which does the same thing mine
does except with VNC).  I also like the idea of being able to transmit only
a single window.  From what I've read, x2go is capable of this, and possibly
much more.

I can't do anything else as asking you for some patience.


Don't worry, I am very much in an early development phase and I don't need
the most current software.  I'm just glad that I've found a group this
helpful.

We will not be using one of the big Git portals like Github, though. This is
> mainly because of date protection laws in Germany that we would like to be
> compliant with (Google analytics et al.).


I was thinking of hosting my modifications of the code on GitHub.  I am in
the United States of America, so we obviously don't have the same laws as
Germany does.  Should I not post my code on GitHub?  I would really like to
share my changes, and I already use GitHub for a lot of my other open source
projects, but I'd be willing to not include x2go's code on my GitHub account
and instead give instructions for obtaining the code.

Then look at the url. The following command did work for me:
git clone git://i4git.informatik.uni-erlangen.de/x2goagent.git
Does it work for you now?


Yes, thank you. I was trying to access the code under the projects/
directory, but obviously that didn't work.

Which repositories are necessary for getting a simple server up and running?
 I don't need anything like sound, printing, etc, just enough to get a
normal NX server running on gnome.  I'll start with this and when I get
something setup, I'll add features.

Once I get a basic server up and running, I can experiment with turning it
into a NodeJS module and pipe it over HTTP.  I was thinking about using
OpenNX as a reference for my client because it said it was a drop-in
replacement for the original NX client.

Mike mentioned that the source will be released under the AGPL.  Is there
any chance that it could ever be released under a less restrictive license?
 I would like to release my code under the MIT or similar license, but I
will try to abide by the AGPL as closely as possible.  I may have more
questions about whether I can release my code under a different license as I
get closer to a working product.  Once I get something up and running.

On Sat, Mar 19, 2011 at 9:14 AM, Heinz-M. Graesing <x2go-dev at x2go.org>wrote:

> Hi Tyler,
>
> welcome on our List!
>
> Am 19.03.2011 07:35, schrieb Tyler Jameson Little:
>
> > Mike informed me that the x2go team is already developing browser
> plugins,
> > but I wanted a way to integrate a remote session into a browser using
> pure
> > HTML5 and JavaScript.
>
> His sounds very intersting!
>
> > Has the x2go team significantly modified the base NX server code?  If so,
> > where can I get the full source code for the server (not just the
> scripts)?
>
> So you've found the scripts in our git - the purpose of those scripts is
> to initiate the needed command on server side. This means they take care
> about the session management, the mounted directories, the audio
> redicrection and so on. The main task is done by those needed services
> and if you want to write a client on HTML/Javascript base you'll need to
> contact those services too.
> NX is a rendering protocol, so you wont find already rendered diff
> screen segments like vnc. A real native implementation would need to
> render all primitives drawn in the X screen to be converted to the HTML
> Canvas Element. I've played with the Canvas Element a lot, but I always
> needed some local components to do all the needed work. The result would
> again be an extension for the browser which needs to be installed - like
> our plugin solution. But the plugin is now a variant of x2goclient so it
> won't need another code base.
> But this is what I've experienced - I really would like to hear more of
> your ideas about this.
>
> What already can be done:
> Use a virtual x2go display with ajaxvnc (or any other HTML VNC solution)
> and access it via your browser. The occuring problem is, that you'll get
> no advantages to a pure vnc environment, because the nx/x2goagent is not
> displayed locally...
>
>
> > I will mostly want to be looking at where the data gets sent to the
> client,
> > but I'm not sure where the best place to look for that would be.
>
> The communication you are looking for is the communication between a
> X-client and a X-server. To make it more complicated - yes in this
> special case it is compressed and encrypted (ssh - I don't see how to
> access ssh via javascript) too.
>
> I really see a lot of Use Cases for such a client, because it could be
> used on totally closed brickware!
>
> So again - welcome on our list. Thank you for your interest and for
> sharing you idea with us. Maybe some more time is needed, but I don't
> consider this task as "hopeless" (as other projects are working on
> similar ideas):
>
> http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/
>
>
> Regards,
>
> Heinz
> _______________________________________________
> X2go-dev mailing list
> X2go-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/x2go-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20110319/6751cbe8/attachment.html>


More information about the x2go-dev mailing list