[REBOL] Re: P2P Q&A
From: koopmans:itr:ing:nl at: 1-Oct-2001 10:42
> I can understand it. That would be great. I think that Maarten's Rugby is
> heading that way. Now more direct and technical question - is it
> technically possible to accept connection (conn: first listen-port), and
> once done, pass the connection to another node (rebol process on the same
> machine, remote rebol process) to handle such request?
Rugby is already there. Rugby allows you to expose Rebol funcs. Rebol funcs
can accept blocks. Blocks can be executed. Provide some extra security to
preventy malicious blocks from being executed (for example by creating a
dialect) and you are done.
Combine this with View where you can integrate servers and clients due to the
event system and with the http transport layer (which is also
non-blocking)....
All of the things Holger mentions are currently done at my daytime job using
Rugby and distributing tasks over 10 machines on all kind of platforms using
Command, including FreeBSD, Linux, Solaris and Windows.
If you are interested in writing your own high-performance server you could
look into hipe-serv.r in the Rugby distro. It is a generic non-blocking I/O
engine. You supply it one function (the handler) and the rest is taken care
off. See web-handler (the http proxy) and do-handler (the Rugby handler) as
examples in server.r in the distro.
Another good example is the rugby console that I put on the REB sometime ago.
It allows you to run rugby servers as you type on any Core 2.5 engined Rebol,
add and remove functions dynamically, etc.
HTH,
Maarten