如何通过局域网连接从机器A到机器B访问Rshiny应用程序?

时间:2018-11-22 12:13:19

标签: r server shiny

我面临的问题是我无法通过局域网连接在计算机B中运行我的应用程序。我可以在机器A上轻松地运行它,就像我在那儿创建它一样。

ui.R

    fluidPage(
      title = 'Creating a UI from a loop',
      sidebarLayout(
        sidebarPanel(
          # create some select inputs
          lapply(1:5, function(i) {
            selectInput(paste0('a', i), paste0('SelectA', i),
                choices = sample(LETTERS, 5))
          })
        ),

        mainPanel(
          verbatimTextOutput('a_out'),

          # UI output
          lapply(1:10, function(i) {
            uiOutput(paste0('b', i))
          })
        )
      )
    )

server.R

    function(input, output, session) {  
      output$a_out <- renderPrint({
        res <- lapply(1:5, function(i) input[[paste0('a', i)]])
        str(setNames(res, paste0('a', 1:5)))
      })

      lapply(1:10, function(i) {
        output[[paste0('b', i)]] <- renderUI({
          strong(paste0('Hi, this is output B#', i))
        })
      })
    }

app.R

    setwd("/home/abc/Rdeploy")
    runApp(getwd())

这是从机器A访问应用程序的Web链接

127.0.0.1:3786

所以请向我解释在机器B中运行此应用程序的步骤,以便我可以通过上述网络链接轻松访问它。同样,我也不想为此简单目的安装ShinyServer或ShinyServer Pro。

2 个答案:

答案 0 :(得分:1)

通过这种方式,可以通过您计算机的所有IP:

app <- shinyApp(ui = ui, server = server)
runApp(app, host = "0.0.0.0", port = 80)

(端口由您选择)

答案 1 :(得分:0)

只要您的A和B机器都连接到同一Wifi,这应该可以工作:

shinyApp(ui = ui, server = server,options = list(port=5000,host="your IP"))

如果没有,我建议您使用shinyapps.io进行部署。您可以选择任意端口号。