listen
function (a wrapper around
httpuv::service
or later::run_now
) added to
for more convenient use of JRC apps in Jupyter Notebooks.onlyServer
argument is added to the
openPage
function to prevent opening a browser
tab.
Bug in the thisArg
argument of the
callFunction
function is fixed.
setLimits
now used to set any kind of restriction to
memory usage. It replaces numberOfConnections
and
limitStorage
. Now, also number of processed messages per
second or the amount of processed information can be limited, so that
the app will not get stuck after receiving too many messages.
onClose
callback added to the openPage
function. It allows to specify actions to be taken when a WebSocket
connection is closed (user closes the page).
getPort
added as a function and as a method of class
App
to query for a port number of the running app.
sendData
now handles the NAs properly.
Issue with failing to establish a WebSocket connection to a complex address fixed.
allowedDirectories
argument is added to the
openPage
function (and also the corresponding function and
method allowDirectories
). Now user can specify the list of
directories that can be accessed by server. By default, it’s the
rootDirectory
, the current working directory and a
temporary directory for the current R session.
Issue with incorrect serving of the file types that are supposed to be send as bytes fixed.
jrc
now imports R.utils
for more robust
paths handling.
Issue with file separator in Windows fixed.
Now app is stored in packages namespace immediately after
initialization. This fixes a problem with wrapper functions inside
onStart
.
jrc
now supports multiple connections to a single
server and thus can be used to create server apps that are intended to
be used by multiple clients simultaneously. This change requires some
additional arguments in some of the functions as well as several new
ones. However, backwards compatibility is maintained.
jrc
now depends on R6
and each app is
represented with a single object. One can manage the app with methods of
this object, which allows to run several apps inside one R session. For
more information, check man pages of classes App
and
Session
.
jrc
now works properly on RStudio Server
sendData
no longer crashes when
keepAsVector = FALSE
and some NAs are present.
jrc
now works with httpuv < 1.5.2
(it no longer depends on httpuv::randomPort()
).
jrc
now imports mime
for defining
content type when serving a page.
Now most of the request from the server must be manually
authorized in the R session to prevent misuse of publicly available apps
based on jrc. Functions authorize
,
allowVariables
, allowFunctions
,
limitStorage
have been added. Check their man pages for
more information.
openPage
now have browser
argument,
which allows to specify a browser to open a page (previously the default
browser was used with no alternatives).
Function getPage
is added. This function returns the
main page-handling object with all the information about current
session.
Function callFunction
added on both R and JavaScript
sides. It allows to call a function by name, list of arguments and name
of variable to which assign the result.
Now port for the local server is selected by
httpuv::randomPort()
function. User can also provide a port
number as an argument to the openPage
function.
sendData
now has argument rowwise
which
allows to send matrices and data.frames to JavaScript not only rowwise
(default), but also columnwise.
If in sendData
keepAsVector = FALSE
jrc
now checks recursively for any arrays of length 1 to
replace them with scalars (important for lists).
Some bugs with changing variable types in
jrc.sendData
fixed.