所以我有C ++ API在字符串上抛出字符串,我通过(改编自here)在Shiny Application中捕获它们:
socket.reader <- function(){
writeLines("Listening...")
con <- socketConnection(host="localhost", port = 6011, blocking=TRUE,
server=TRUE, open="r+")
txt <- readLines(con, -1)
if (txt == "\n") break
dat <- paste(dat, txt)
output$selected_var <- renderText({
dat
})
close(con)
}
socket.reader()
现在这个工作正常,但遗憾的是dat
只有在连接关闭后才会被填满
我已经将EOL(\n
)填入C ++客户端,以便知道何时应该读取下一行。
可悲的是,txt <- readLines(con, 1)
当时没有做到这一点
我该怎么做或者这里的机制是什么?
是套接字连接正在读取和写入文件的问题,这只会在文件完成(连接关闭)时发生吗?
我想将数据直播到我的闪亮应用程序,但我也想进行评估,因此在数据进入评估时需要有端点。对正在发生的事情有任何帮助吗?