On Fri, 2011-03-18 at 20:24 -0600, Tyler Jameson Little wrote:
I downloaded a copy of the source by using this command: git clone git://code.x2go.org/x2goserver.git
I want to try to make a module on NodeJS, and I had assumed that I would get a bunch of source files written in C or C++, but what I got was a bunch of Perl scripts.
Is that all the server is? Am I missing something? My goal is to make an NX server that can run over a simple TCP or HTTP server and I was going to write a client for display in the browser. From my research, X2Go is supposed to be the most fully featured, open source NX implementation out there. I downloaded the source from NoMachine.com for part of their server and it was as I expected, a bunch of C and C++ sources.
With NodeJS, I have a couple of options: * Include a C++ module by exporting certain functions * Write the source in server-side JavaScript * Use the exec command to execute scripts on the command-line
If the server really is that simple, then my project will be a lot less painful and will take me a lot less time than expected to make work with NodeJS. If the server really is this simple, how does it compare performance-wise with the open source version from NoMachine? I want to possibly have several NX servers piped through a single webserver where each NX server is running in it's own VM, so efficiency is what I'm after. I am primarily looking at just running this on Ubuntu, so this package looked like it was the right one (debian).
Any help that any of you could offer would be much appreciated. I'm excited to start playing with this software!! Don't worry, anything I produce will be Open Source, regardless of whether I do a complete rewrite. <snip> Welcome, Tyler. I'll take a stab at explaining this in case the devs don't have a chance to respond. Of course, take anything they say as more authoritative than anything I say!
There is a difference between X2Go and NX. X2Go strives to be much more than just remote screens and keystrokes. By leveraging many open source projects (e.g., sshfs, fuse, pulseaudio, libssh, vcxsrv, nx) it strives to create a complete desktop experience including printing, sound, local file shares. Note that I mentioned it leverages the NX code which is why you will not find the actual NX source inside X2Go.
The server side is largely a collection of scripts. In fact, starting the x2goserver process really does not start the server. It starts a cleanup script to handle maintenance of stopped/suspended sessions. The client actually invokes the various scripts via ssh. If you download the client, you will find a bunch of Qt/C++ code and it is this code which calls the various x2goserver scripts to do things like set up file shares, audio, and invoke NX with the proper arguments. Hope that helps