Python 在R应用程序中接收推送数据
我有一个简单的python程序,它应该将其数据推送到R应用程序中。“获取”输入中的以下行: 是否有人知道如何使其工作,或者有更好的解决方案将数据从外部推送到R应用程序中Python 在R应用程序中接收推送数据,python,r,get,shiny,shiny-server,Python,R,Get,Shiny,Shiny Server,我有一个简单的python程序,它应该将其数据推送到R应用程序中。“获取”输入中的以下行: 是否有人知道如何使其工作,或者有更好的解决方案将数据从外部推送到R应用程序中 谢谢你的帮助 我使用WebSocket和httpuv的完整解决方案: library(httpuv) startWSServer <- function(){ if(exists('server')){ stopDaemonizedServer(server) } app <- list
谢谢你的帮助 我使用WebSocket和httpuv的完整解决方案:
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
}
库(httpuv)
startWSServer与您的闪亮应用程序交互的客户端需要处理javascript/WebSocket,据我所知,urllib2
库不需要这些。闪亮应用程序是客户端-服务器应用程序,因此您需要运行javascript的东西。一个潜在的候选人是另一个潜在的解决方案,谢谢你的评论。我通过使用httpuv和创建websocket服务器解决了我的问题。这里有一个例子:@tanktoo这是一个非常有趣的方法。如果你能把你的解决方案写成答案,它将在将来帮助其他人。@warmoverflow done
request = urllib2.Request("http://127.0.0.1:5923/?eventid=1223&event=somestring")
test = urllib2.urlopen(request)
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
}