Rstudio 0.98.490 блоков приложений Ладья
Похоже, что панель просмотра RStudio 0.98 блокирует внутренний веб-сервер R для прослушивания запросов для приложений Rook. Я попробовал следующее:
# This my working setup
require(Rook)
myPort <- 80
myInterface <- "192.168.16.81" # just change with yours
.Call(tools:::startHTTPD, myInterface, myPort)
unlockBinding("httpdPort", environment(tools:::startDynamicHelp))
assign("httpdPort", myPort, environment(tools:::startDynamicHelp))
s <- Rhttpd$new()
s$listenAddr <- myInterface
s$listenPort <- myPort
s$add(
app=system.file('exampleApps/helloworld.R',package='Rook'),
name='hello'
)
s$browse(1)
# Working Example from ?Rhttpd
#s$stop() # stop the server
#rm(list=ls()) # clean the session and try again
s <- Rhttpd$new()
s$start(quiet=TRUE)
s$add(
app=system.file('exampleApps/helloworld.R',package='Rook'),
name='hello'
)
s$browse(1)
В первой попытке браузер зависает навсегда (буквально, как обычно, он может подключиться... время ожидания... и т. Д.). Поэтому я подумал, что это может быть связано с этим
Localhost URLs (e.g. for Shiny, Rook, or OpenCPU applications) are now automatically proxied back to remote clients on the main server port.
Нашел здесь. Но это относится к RStudio Server.. поэтому я не знаю. Должен ли я понизить до 0,97 или кто-нибудь из вас это исправил?
Информация о моей сессии:
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] tools stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] Rook_1.0-9 brew_1.0-6
РЕДАКТИРОВАТЬ
?Rhttp
пример, кажется, на самом деле работает. (но не каждый раз) RStudio, кажется, заставляет приложение использовать порт, отличный от выбранного мной!
> s <- Rhttpd$new()
> s$add(
+ app=system.file('exampleApps/helloworld.R',package='Rook'),
+ name='hello'
+ )
> s$start(port=8080, quiet=TRUE)
> s$browse(1)
Warning message:
In s$start(port = 8080, quiet = TRUE) :
RStudio has already started the web server on port 19905