| websocket {sketch} | R Documentation |
Websocket for 'sketch' applications
Description
This combines the *-Server family of functions in 'httpuv' with the transpilation functionality provided by 'sketch'.
Public fields
appA list of functions that define the application.
serverA server handle to be used by 'stopServer'.
logA character vector that keep tracks of all the commands sent to the browser session.
wsA WebSocket channel to handle the communication between the R session and the browser session.
in_handlerA function to handle instructions sent by the browser session.
out_handlerA function to handle instruction sent to the browser session.
envAn environment to store variables temporarily.
portAn integer; the TCP port number.
messageTRUE or FALSE; whether to display a prompt when a server is started and when it is stopped.
connectedTRUE or FALSE; whether a connection has been established. One should ways start the WebSocket server before visiting the web page that connects to the server.
startedTRUE or FALSE; whether a server has been started. Use the
startServermethod to start a server.
Methods
Public methods
Method startServer()
Start a WebSocket server
Usage
websocket$startServer()
Method stopServer()
Stop a WebSocket server
Usage
websocket$stopServer()
Method listServers()
List all running WebSocket servers
Usage
websocket$listServers()
Method stopAllServers()
Stop all running WebSocket servers
Usage
websocket$stopAllServers()
Method sketch_mode()
Enter sketch mode, in which all commands go through the transpiler before reaching the browser session.
Usage
websocket$sketch_mode()
Method new_app()
Create a blank HTML page with interactive access. This function is designed for newcomers.
Usage
websocket$new_app( preamble = list(library = c(), script = c(), data = c()), ... )
Arguments
preamble(Optional) A named list; the preamble to include. Use the name 'lib' for arguments to
load_library, 'script' for arguments toload_scriptand 'data' for arguments toload_data. Note that the "dom" and "websocket" modules are required and loaded by default....Extra parameters to pass to source_r.
Returns
The (invisible) temporary file path to the app.
Method new()
Initialise a WebSocket connection
Usage
websocket$new(in_handler, out_handler, message = TRUE, port = 9454)
Arguments
in_handlerA function to handle incoming message, default to be print which only displays the message without any processing.
out_handlerA function to handle outgoing message, default to be compile_exprs which transpiles R commands into JavaScript commands.
messageTRUE or FALSE; whether to display a prompt when a server is started and when it is stopped.
portAn integer; the TCP port number.
Returns
A 'websocket' object.
Examples
\dontrun{
# Launch a WebSocket server
ws <- websocket$new()
ws$startServer()
ws$listServers() # Check that a server is running
# Launch a 'sketch' application with WebSocket functionality
file <- system.file("test_files/test_websocket.R", package = "sketch")
source_r(file, debug = TRUE) # Launch the default browser
# Enter sketch mode to send commands to the application
ws$sketch_mode()
# Within sketch mode
print("1234")
x <- 10
print(x + 1)
q()
# Back to normal mode, inspect the log and stop the server
ws$log
ws$stopServer()
ws$listServers() # Confirm no server is running
}
Method clone()
The objects of this class are cloneable with this method.
Usage
websocket$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Examples
## ------------------------------------------------
## Method `websocket$new`
## ------------------------------------------------
## Not run:
# Launch a WebSocket server
ws <- websocket$new()
ws$startServer()
ws$listServers() # Check that a server is running
# Launch a 'sketch' application with WebSocket functionality
file <- system.file("test_files/test_websocket.R", package = "sketch")
source_r(file, debug = TRUE) # Launch the default browser
# Enter sketch mode to send commands to the application
ws$sketch_mode()
# Within sketch mode
print("1234")
x <- 10
print(x + 1)
q()
# Back to normal mode, inspect the log and stop the server
ws$log
ws$stopServer()
ws$listServers() # Confirm no server is running
## End(Not run)