在 R Shiny 应用程序中接收推送数据

Receive push data in R Shiny application

我有一个简单的 python 程序,它应该将其数据推送到 R Shiny 应用程序中。 Shiny 中的这些行解析 "GET" 输入:

  # Parse the GET query string
  output$queryText <- renderText({
    query <- parseQueryString(session$clientData$url_search)
    eventList[query$eventid] <<- query$event
  })

这适用于调用“http://127.0.0.1:5923/?eventid=1223&event=somestring”的浏览器。如果我尝试在 python 中调用 URL,我会在 R 中得到一个 "Connection reset by peer",并且没有任何内容添加到列表中。到目前为止我的 Python 代码:

request = urllib2.Request("http://127.0.0.1:5923/?eventid=1223&event=somestring")
test = urllib2.urlopen(request)

有谁知道如何让它工作或有更好的解决方案将数据从外部推送到 R Shiny 应用程序?

感谢您的帮助!

我使用带有 httpuv 的 websockets 的完整解决方案:

library(httpuv)
startWSServer <- function(){
   if(exists('server')){
      stopDaemonizedServer(server)
   }
   app <- list(
      onWSOpen = function(ws) {
         ws$onMessage(function(binary, message) {
            #handle your message, for example save it somewhere 
            #accessible by Shiny application, here it is just printed
            print(message)
            ws$send("message received")
         })
      }
   )
   server <<- startDaemonizedServer("0.0.0.0", 9454, app)
}

stopWSServer <- function(){
   stopDaemonizedServer(server)
   server <<- NULL
}

希望对您有所帮助 ;)