epiviz / epivizrServer

Other
0 stars 1 forks source link

epivizrServer

Methods providing WebSocket connection server and request/response message handling for the epiviz JS application http://epiviz.github.io. These functions have been extracted from the epivizr Bioconductor package into its own package for easier use and maintenance.

It is based on the httpuv package, which provides an interface to the libuv networking library.

Usage

library(EpivizrServer)

# create the server (but it's not started yet)
server <- createServer(port=7123, verbose=FALSE)

# register a callback to evaluate when a request with given action
# is received
server$register_action("getData", function(request_data) {list(x=1,y=3)})

# start the server
server$start_server()

# send a request with callback to evaluate when successful response is received
server$send_request(list(x=2,y=5), function(response_data) {cat(response_data$x)})

# in Windows platform this is required to listen and respond to requests
server$service()

# when done, stop the server
server$stop_server()

# in interactive sessions it is good practice
# to add a `stop_server` call to the R exit hooks
# to release network port used
server$start_server()
on.exit(server$stop_server())