HttpDaemon
The HttpDaemon class
Package: R.rsp
Class HttpDaemon
Object
~~|
~~+--
HttpDaemon
Directly known subclasses:
public static class HttpDaemon
extends Object
A minimalistic HTTP daemon (web server) that preprocesses R Server Pages.
Usage
HttpDaemon(...)
Arguments
- ...
- Not used.
Details
The actual server is written in Tcl such that it runs in a non-blocking
mode, which means that the R prompt will be available for other things.
This class is tightly coupled with the source code of the Tcl script.
For security reasons, the server only accept connections from the
local host (127.0.0.1). This lowers the risk for external computers
to gain access to the R session.
This is asserted by the accept_connect
Tcl procedure in
r-httpd.tcl (located in system("tcl/", package="R.rsp")
).
If access from other hosts are wanted, then this procedure needs to
be modified.
The Tcl server was written by Steve Uhlers, and later adopted for R by
Philippe Grosjean and Tom Short (Rpad package author) [1].
Fields and Methods
Methods:
appendRootPaths
Appends and inserts new paths to the list of known root directories.
as.character
Returns a short string describing the HTTP daemon.
finalize
-
getConfig
Retrieves the server's 'config' structure from Tcl.
getCount
-
getDefaultFilename
Gets the default filename to be loaded by the HTTP daemon.
getHttpRequest
Gets the HTTP request.
getPort
Gets the socket port of the HTTP daemon.
getRootPaths
Gets the root directories of the HTTP daemon.
insertRootPaths
-
isStarted
Checks if the HTTP daemon is started.
openUrl
Starts the HTTP daemon and launches the specified URL.
processRsp
Processes an RSP page.
restart
Restarts the HTTP daemon.
setCount
-
setRootPaths
Sets a new set of root directories for the HTTP daemon.
sourceTcl
Loads the Tcl source for the HTTP daemon into R.
start
Starts the HTTP daemon.
startHelp
Starts the HTTP daemon and launches the help page.
stop
Stops the HTTP daemon.
writeResponse
Writes a string to the HTTP output connection.
}
Methods inherited from Object:
$, $<-, [[, [[<-, as.character, attach, attachLocally, clearCache, clearLookupCache, clone, detach, equals, extend, finalize, gc, getEnvironment, getFieldModifier, getFieldModifiers, getFields, getInstantiationTime, getStaticInstance, hasField, hashCode, ll, load, objectSize, print, registerFinalizer, save
References
[1] Rpad package, Tom Short, 2005.
Examples
if (interactive()) {
if (!HttpDaemon$isStarted()) {
# Start the web server
rootPath <- system.file("rsp", package="R.rsp")
HttpDaemon$start(rootPath=rootPath, port=8074, default="index.rsp")
}
browseURL("http://127.0.0.1:8074/")
}