Serves emuDB media files, SSFF tracks and annotations for EMU-webApp browser GUI http://ips-lmu.github.io/EMU-webApp/
Instructions:
Start and connect (this should happen automatically):
Call this function to start the server.
Start a suitable HTML5 capable Web-Browser (Google Chrome, Firefox,...).
Navigate to the EMU-Webapp URL: http://ips-lmu.github.io/EMU-webApp/.
Press the 'Connect' button in the EMU-webApp and connect with default URL.
EMU-webApp loads the bundle list and the first bundles media file, SSFF tracks and annotations.
Disconnect and stop:
Disconnect and stop the server with the 'Clear' button of the webapp or the reload button of your browser.
The server can also be stopped by 
calling stopAllServers of the httpuv package
Hints:
To serve only a subset of sessions or bundles use 
the parameters sessionPattern and/or bundlePattern.
Use the seglist parameter to pass in a segment list
which was generated using the query function. This will
allow quick navigation to those segments.
serve(
  emuDBhandle,
  sessionPattern = ".*",
  bundlePattern = ".*",
  seglist = NULL,
  bundleListName = NULL,
  host = "127.0.0.1",
  port = 17890,
  autoOpenURL = "https://ips-lmu.github.io/EMU-webApp/?autoConnect=true",
  browser = getOption("browser"),
  useViewer = TRUE,
  debug = FALSE,
  debugLevel = 0
)TRUE (invisible) if the server was started
emuDB handle as returned by load_emuDB
A regular expression pattern matching session names to be served
A regular expression pattern matching bundle names to be served
segment list to use for times anchors and session + bundle restriction (type: emuRsegs)
name of bundleList stored in emuDB/bundleLists subdir to send to EMU-webApp
host IP to listen to (default: 127.0.0.1 (localhost))
the port number to listen on (default: 17890)
URL passed to browseURL function. If NULL or an empty string are passed in
browseURL will not be invoked.
argument passed on to browser argument of browseURL (see 
it's documentation for details )
Use the viewer provided by getOption("viewer") (the viewer pane when using RStudio) 
and host a local version of the EMU-webApp in it. This will clone the current 
EMU-webApp build (https://github.com/IPS-LMU/EMU-webApp/tree/gh-pages/) into the directory provided by 
tempdir and serve this local version. A clone will 
only be performed if no file.path(tempdir(), "EMU-webApp") directory is present. An alternative
directory can be also set: options(emuR.emuWebApp.dir="path/to/EMU-webApp") (use if offline functionality is required).
TRUE to enable debugging (default: no debugging messages)
integer higher values generate more detailed debug output
Function opens a HTTP/websocket and waits in a loop for browser requests. 
Parameter host determines the IP address(es) of hosts allowed to connect to the 
server. By default the server only listens to localhost. If you want to allow 
connection from any host set the host parameter to 0.0.0.0. Please note 
that this might be an safety issue! The port parameter determines the port 
the server listens on. The host and port parameters are intended 
only for expert users. When started the R console will be blocked. On successful 
connection the server sends the session and bundle list of the database referenced 
by name by parameter dbName or by UUID parameter dbUUID.
The Web application requests bundle data for viewing or editing. If a bundle 
is modified with the EMU-webApp and the save button is pressed the server modifies 
the internal database and saves the changes to disk.
Communication between server and EMU webApp is defined by EMU-webApp-websocket-protocol 
version 0.0.2 (https://ips-lmu.github.io/The-EMU-SDMS-Manual/app-chap-wsProtocol.html).
if (FALSE) { 
## Load EMU database 'myDb' and serve it to the EMU-webApp (opens default HTTP/websocket port 17890)
myDb = load_emuDB("/path/to/myDb")
serve(myDb)
}
Run the code above in your browser using DataLab